On Tuesday, October 9, 2012, Benjamin Caldwell wrote: > Thanks Arun - the different lengths in the list elements was the sticking > point. Does anyone have suggestions for packages or R books on indexing/ > reshaping datasets for an intermediate user like myself?
Perhaps Spector on Data Manipulation in R Cheer cheers, rmw > > *Ben Caldwell* > > > > > On Mon, Oct 8, 2012 at 3:26 PM, arun <smartpink...@yahoo.com<javascript:;>> > wrote: > > > Hi, > > > > Your output suggests that the list elements have unequal lengths. The > > empty spaces will be occupied by NAs. > > I am using the first three list elements from the tapply() output: > > > > list1<-list(c(2.8546, 4.0778, 5.2983, 6.3863, 7.5141, 8.5498, > 9.5839, > > 10.6933),c(7.6810, 8.7648, 9.8382, 10.8903, 11.9840, 13.0541, 14.1132, > > 15.1657),c(22.0840, 30.3001, 35.2505, 42.8085, 48.5220, 52.0604, 57.9428, > > 61.4930, > > 64.4550, 67.3543, 69.8435, 72.9508, 74.4730, 76.3104)) > > names(list1)<-c("SNRL1Core120","SNRL1Core230","VAL1.1.1NA.na30") > > > > fun1<-function(x){ > > na.pad<-function(y,len){ > > c(y,rep(NA,len-length(y))) > > } > > maxlen<-max(sapply(x,length)) > > do.call(data.frame,lapply(x,na.pad,len=maxlen)) > > } > > fun1(list1) > > A.K. > > > > > > > > > > > > > > > > ----- Original Message ----- > > From: Benjamin Caldwell <btcaldw...@berkeley.edu <javascript:;>> > > To: r-help <r-help@r-project.org <javascript:;>> > > Cc: > > Sent: Monday, October 8, 2012 5:49 PM > > Subject: [R] turn list into dataframe > > > > Dear R users, > > > > I'm starting to use 'apply' functions rather than for loops in R, and > > sometimes the output is a bit different than what I want. In this case, > the > > command was > > > > > > tapply(myvector,myindex,cumsum) > > > > And the output was something like this: > > > > $`SNRL1 Core 120` > > [1] 2.8546 4.0778 5.2983 6.3863 7.5141 8.5498 9.5839 10.6933 > > > > $`SNRL1 Core 230` > > [1] 7.6810 8.7648 9.8382 10.8903 11.9840 13.0541 14.1132 15.1657 > > > > $`VAL 1.1.NA.na30` > > [1] 22.0840 30.3001 35.2505 42.8085 48.5220 52.0604 57.9428 61.4930 > > 64.4550 67.3543 69.8435 72.9508 74.4730 76.3104 > > > > $`VAL 1.2.NA.na15` > > [1] 33.8895 38.7440 41.0536 44.1581 46.4891 48.3130 51.0973 52.9241 > > 54.6404 56.1265 57.5064 59.0745 > > > > $`VAL 1.2.NA.na30` > > [1] 6.6408 10.6838 13.8328 15.5435 18.3037 20.3315 22.8817 24.4481 > > 26.4106 27.6658 29.6455 30.8490 31.8680 > > > > $`VAL 1.3.NA.na10` > > [1] 4.8198 7.1274 8.9536 11.5954 14.0845 15.5116 16.9462 18.1269 > > 19.3453 20.5723 21.7122 22.8643 > > > > $`VAL 1.3.NA.na20` > > [1] 5.7382 8.2056 9.4489 10.8225 12.3497 13.6879 15.1077 16.3229 > > > > , > > That's fine, but I need the output as a dataframe. I'm not even sure what > > to call this list, but it has multiple entries for each item. > > > > Forgive the fact that I don't have the data for you to use, I'm wondering > > if anyone knows about a pre-existing function that will allow be to turn > > the above list form into a dataframe. Thanks > > > > > > *Ben Caldwell* > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help@r-project.org <javascript:;> 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. > > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org <javascript:;> 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. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org 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.