[R] Setting up a blank table with column names in the hard drive

Duncan Murdoch murdoch at stats.uwo.ca
Sun Jun 24 13:14:14 CEST 2007


On 23/06/2007 7:51 PM, Yuchen Luo wrote:
> Dear Professor Murdoch.
> Thank you so much! Your help is highly appreciated!

Please send replies to the mailing list.
> 
> When I use the following commands, there is a blank cell before title "name"
> in the resulting csv (excel) file. I am wondering how to get rid of it? I
> want to get rid of it because when I write subsequent rows to the file, the
> "name" part start from the beginning which is not aligned with the first
> line of the column titles.

That's a place holder for the row names.  If you don't want it, specify 
row.names=FALSE (and do the same when you write subsequent lines).

Duncan Murdoch

> 
> " blank <- data.frame(name=character(0), wife=character(0),
> no.children=numeric(0))
> write.csv(blank, 'file.csv')"
> 
> Thank you for your help again and your time is highly appreciated!
> 
> Best Wishes
> Yuchen Luo
> I
> 
> 
> On 6/23/07, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>> Yuchen Luo wrote:
>>> Dear Friends.
>>> Greetings!
>>>
>>> This should be a very common operation and I believe there should be a
>> nice
>>> way in R to handle it.  I couldn't find it in the manual or by searching
>> on
>>> line. I am wondering if I could ask for some help in this community.
>>>
>>>
>>>
>>> I am trying to record the results of my program to a csv file in the
>> hard
>>> drive so as to save memory space and also to read the results in excel
>> after
>>> running the program.  Every loop of my program will result in a list
>> with
>>> element belonging to different class. For example, things like
>>>
>>>
>>>
>>> a1 <- list(name="Fred", wife="Mary", no.children=3)
>>> a2 <- list(name="Tom", wife="Joy", no.children=9)
>>> a3 <- list(name="Paul", wife="Alic", no.children=5)
>>>
>>>
>>>
>>> I want the columns to have titles, in the example above, I want to see
>> the
>>> title "name", "wife" and "no.children" in the excel file.
>>>
>>>
>>>
>>> To set up the table in the csv file, I need to add at least one row in
>> the
>>> table up front. How ever, I do not have the first loop of the program
>>> completed yet at that time. If I add a row that is meaningless, how may
>> I
>>> delete it after all the loops are completed and all the meaningful rows
>> are
>>> added to the table?
>>>
>>>
>> I'd use data frames rather than plain lists for the results, so
>> write.csv will work.
>>
>> Create a data frame with 0 rows, and write it out:  this will give you
>> your header line.
>>
>> e.g.
>>
>>
>>
>> Now you can rbind new lines onto the data frame as you calculate new
>> records and rewrite the whole thing, or just append them to the file
>> with append=TRUE and writing with col.names=FALSE.
>>
>> Duncan Murdoch
>>
>>
>



More information about the R-help mailing list