Re: [R] converting by to a data.frame?

2003-06-09 Thread Spencer Graves
Hi, Don: Thanks for your suggestion to use do.call in my get.Index. I discovered that your version actually produces cosmetically different answers in R 1.6.3 and S-Plus 6.1 for Windows. Fortunately, in the context, this difference was unimportant. Since yours is faster, it is clearly

Re: [R] converting by to a data.frame?

2003-06-08 Thread Spencer Graves
Thanks to Thomas Lumley, Sundar Dorai-Raj, and Don McQueen for their suggestions. I need the INDICES as part of the output data.frame, which McQueen's solution provided. I generalized his method as follows: by.to.data.frame - function(x, INDICES, FUN){ # Split data.frame x on x[,INDICES] #

[R] converting by to a data.frame?

2003-06-06 Thread Spencer Graves
Dear R-Help: I want to (a) subset a data.frame by several columns, (b) fit a model to each subset, and (c) store a vector of results from the fit in the columns of a data.frame. In the past, I've used for loops do do this. Is there a way to use by? Consider the following example:

Re: [R] converting by to a data.frame?

2003-06-06 Thread Thomas Lumley
On Thu, 5 Jun 2003, Spencer Graves wrote: Dear R-Help: I want to (a) subset a data.frame by several columns, (b) fit a model to each subset, and (c) store a vector of results from the fit in the columns of a data.frame. In the past, I've used for loops do do this. Is there a way

Re: [R] converting by to a data.frame?

2003-06-06 Thread Spencer Graves
Hi, Thomas, et al.: Thanks for the reply. Unfortunately, do.call strips off the subset identifiers, which I want to use for further modeling: do.call(rbind, byFits) (Intercept) x [1,] 0.333 -1.517960e-016 [2,] 0.667 3.282015e-016 The following does what I want

Re: [R] converting by to a data.frame?

2003-06-06 Thread Don MacQueen
Since I don't have your by.df to test with I may not have it exactly right, but something along these lines should work: byFits - lapply(split(by.df,paste(by.df$A,by.df$B)), FUN=function(data.) { tmp - coef(lm(y~x,data.))

Re: [R] converting by to a data.frame?

2003-06-06 Thread Sundar Dorai-Raj
Spencer, Would sapply be better here? R by.df - data.frame(A=rep(c(A1, A2), each=3), R+ B=rep(c(B1, B2), each=3), R+ x=1:6, y=rep(0:1, length=6)) R t(sapply(split(by.df, do.call(paste, c(by.df[, 1:2], sep = :))), R+ function(x) coef(lm(y ~ x, data