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

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Sun, 24 Jun 2007 07:14:14 -0400

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
>>
>>
>



R-help_at_stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Sun 24 Jun 2007 - 11:22:59 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 24 Jun 2007 - 20:33:58 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.