[R] converting "by" to a data.frame?

Spencer Graves spencer.graves at pdf.com
Thu Jun 5 23:54:31 CEST 2003


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:

 > byFits <- by(by.df, list(A=by.df$A, B=by.df$B),
+  function(data.)coef(lm(y~x, data.)))
 > byFits
A: A1
B: B1
   (Intercept)             x
  3.333333e-01 -1.517960e-16
------------------------------------------------------------
A: A2
B: B1
NULL
------------------------------------------------------------
A: A1
B: B2
NULL
------------------------------------------------------------
A: A2
B: B2
  (Intercept)            x
6.666667e-01 3.282015e-16
 >
 >
#############################
Desired output:

data.frame(A=c("A1","A2"), B=c("B1", "B2"),
	.Intercept.=c(1/3, 2/3), x=c(-1.5e-16, 3.3e-16))

What's the simplest way to do this?
Thanks,
Spencer Graves




More information about the R-help mailing list