0

このパッケージを使用して、plyrサブジェクトと年ごとにパネル データの回帰を実行しています。plyrRbase関数のみを使用して出力を複製したいと思います。特に、plyrパッケージは SUBJECT および YEAR 変数名を保持しますが、base関数は保持しません。plyrRbase関数のみを使用して出力を複製することは可能ですか? 以下は、私が試したコードの例です。

data <- data.frame(SUBJECT=c(rep('FISHER',10), rep('HUNTER',10)), YEAR=c(rep(2011,5), rep(2012,5), rep(2011,5), rep(2012,5)), y=rnorm(20), x=rnorm(20))
data

Rbase関数のみを使用する

with(data, t(sapply(split(data, list(SUBJECT,YEAR), drop=TRUE), function(x) { coef(lm(y ~ x, data = x)) })))

plyr関数の使用

library(plyr)
ddply(data, .(SUBJECT,YEAR), function(x) { coef(lm(y ~ x, data = x)) })
4

2 に答える 2

1

これを試してください(これix <- 1:2も機能します):

ix <- c("SUBJECT", "YEAR")
reg <- function(DF) cbind(  DF[1, ix],  t(coef(lm(y ~ x, DF)))  )
do.call(rbind, by(data, data[ix], reg))

これにより、次のようになります。

  SUBJECT YEAR (Intercept)           x
1  FISHER 2011   0.8665496  0.25377389
2  HUNTER 2011   0.4954567  0.05370458
3  FISHER 2012   0.5280182  0.95038956
4  HUNTER 2012  -0.8319516 -0.04778639
于 2013-09-16T16:46:12.063 に答える