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

Dieter Menne dieter.menne at menne-biomed.de
Sat Jun 23 13:08:38 CEST 2007


Yuchen Luo <realityrandom <at> gmail.com> writes:

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

Use a data frame to do the work, and save it with write.table or write.csv

maxallocate=10 # we assume no more than 10 members
myfamily = data.frame(name=rep(NA,maxallocate),wife=NA,nchildren=NA)
myfamily[1,]=c("Fred","Ginger",3)
myfamily[2,]=c("Charles","Mary",1)
myfamily[4,]=c("Frank","Salsa",4)
myfamily$name[3]="Anton"
myfamily$wife[3]="Sue"
myfamily$name[10] = "Charly"
myfamily$name[8] = "Fuhrman"
myfamily= myfamily[-1,] # delete first row
myfamily= myfamily[-1,] # delete current first row, i.e. Charles
# cleanup: assume that all entries having a name are valid
myfamily = myfamily[!is.na(myfamily$name),]
# oops .. I forgot .. another family member turned up unexpectedly
#Add it explicitely
rbind(myfamily,c("Tango","Tanga",33))
# The easy part. Check write.table for other options
write.csv(myfamily,file="myfamily.csv",row.names=FALSE)



More information about the R-help mailing list