as.data.frame(do.call(rbind, lapply)) produces something weird
This is a case where you start by breaking down you complex one-liner into separate statements and examine what the results are at each point. This is what I would have to do with the script you posted. I think as Bill pointed out, one of your function calls is probably creating a result that you were not expecting. Standard (good) programming practice would have you creating a number of simple statements; this allows ease of debugging.
On Fri, Nov 9, 2012 at 2:21 PM, Sam Steingold <sds at gnu.org> wrote:
The following code: --8<---------------cut here---------------start------------->8---
myfun <- function (x) list(x=x,y=x*x)
z <- as.data.frame(do.call(rbind,lapply(1:3,function(x) c(a=paste("a",x,sep=""),as.list(unlist(list(b=myfun(x),c=myfun(x*x*x))))))))
z
a b.x b.y c.x c.y 1 a1 1 1 1 1 2 a2 2 4 8 64 3 a3 3 9 27 729 --8<---------------cut here---------------end--------------->8--- the appearance of z is good, but str() and summary betray some weirdness: --8<---------------cut here---------------start------------->8---
str(z)
'data.frame': 3 obs. of 5 variables: $ a :List of 3 ..$ : chr "a1" ..$ : chr "a2" ..$ : chr "a3" $ b.x:List of 3 ..$ : int 1 ..$ : int 2 ..$ : int 3 $ b.y:List of 3 ..$ : int 1 ..$ : int 4 ..$ : int 9 $ c.x:List of 3 ..$ : int 1 ..$ : int 8 ..$ : int 27 $ c.y:List of 3 ..$ : int 1 ..$ : int 64 ..$ : int 729 --8<---------------cut here---------------end--------------->8--- how do I ensure that the columns of z are vectors, as in --8<---------------cut here---------------start------------->8---
z <- data.frame(a=c("a1","a2","a3"),b.x=c(1,2,3),b.y=c(1,4,9),c.x=c(1,8,27),c.y=c(1,64,729))
z
a b.x b.y c.x c.y 1 a1 1 1 1 1 2 a2 2 4 8 64 3 a3 3 9 27 729
str(z)
'data.frame': 3 obs. of 5 variables: $ a : Factor w/ 3 levels "a1","a2","a3": 1 2 3 $ b.x: num 1 2 3 $ b.y: num 1 4 9 $ c.x: num 1 8 27 $ c.y: num 1 64 729 --8<---------------cut here---------------end--------------->8--- thanks! -- Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X 11.0.11103000 http://www.childpsy.net/ http://jihadwatch.org http://think-israel.org http://www.PetitionOnline.com/tap12009/ http://honestreporting.com Programming is like sex: one mistake and you have to support it for a lifetime.
______________________________________________ R-help at 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.
Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it.