[R] coef(summary) and plyr
Hadley Wickham
hadley at rice.edu
Tue Aug 10 00:02:51 CEST 2010
On Mon, Aug 9, 2010 at 4:30 PM, Matthew Dowle <mdowle at mdowle.plus.com> wrote:
>
>
> Another option for consideration :
>
> library(data.table)
> mydt = as.data.table(mydf)
>
> mydt[,as.list(coef(lm(y~x1+x2+x3))),by=fac]
> fac X.Intercept. x1 x2 x3
> [1,] 0 -0.16247059 1.130220 2.988769 -19.14719
> [2,] 1 0.08224509 1.216673 2.847960 -19.16105
> [3,] 2 0.02052320 1.135421 3.134154 -19.22555
>
> mydt[,data.table(coef(summary(lm(y~x1+x2+x3))),keep.rownames=TRUE), by=fac]
> fac rn Estimate Std..Error t.value Pr...t..
> [1,] 0 (Intercept) -0.16247059 0.1521507 -1.0678269 2.929087e-01
> [2,] 0 x1 1.13021985 0.1374020 8.2256414 1.079035e-09
> [3,] 0 x2 2.98876920 0.1404903 21.2738533 1.325909e-21
> [4,] 0 x3 -19.14719151 0.1335139 -143.4096890 4.520371e-50
> [5,] 1 (Intercept) 0.08224509 0.2360664 0.3483981 7.313719e-01
> [6,] 1 x1 1.21667349 0.2723201 4.4678058 2.637743e-04
> [7,] 1 x2 2.84796003 0.2232960 12.7541904 9.192555e-11
> [8,] 1 x3 -19.16104669 0.2394431 -80.0233818 1.707058e-25
> [9,] 2 (Intercept) 0.02052320 0.1902526 0.1078734 9.147302e-01
> [10,] 2 x1 1.13542085 0.1786333 6.3561559 2.980475e-07
> [11,] 2 x2 3.13415398 0.1894404 16.5442781 7.827178e-18
> [12,] 2 x3 -19.22554984 0.1708307 -112.5415605 2.536686e-45
That reminds me:
library(reshape)
ldply(dl, function(x) namerows(as.data.frame(coef(summary(x)))))
I think both Matthew and I would agree that row names are a pain.
Hadley
--
Assistant Professor / Dobelman Family Junior Chair
Department of Statistics / Rice University
http://had.co.nz/
More information about the R-help
mailing list