有几种选择:
一种方式使用ddply
:
ddply( data[ data$country %in% c('USA','UK','France'), ], "country", function(df) coefficients(lm(Y~X1+X2, data=df)))
Using lapply
(or sapply
)另一种方式:
lapply( c("USA","UK","France"), function(curcont) lm(y ~ x1+x2, data=data, subset= country==curcont))
你可以使用lmList
nlme 包中的函数。
您可以直接使用 lm (尽管这将使用方差的汇总估计而不是单独的估计):
lm( y ~ 0 + factor(country) * (x1 + x2), data=data, subset= country %in% c('USA','UK','France') )
还有by
功能和for
循环,可能还有其他选项。