我正在使用lm
和plyr
函数拟合一些因素的回归,但是我在尝试访问summary.lm
类的内容时会发现问题。
作为一个例子,我正在运行类似:
sum = dlply (mtcars, .(cyl), lm, formula = mpg ~ wt) %>%
llply(summary)
这给出了通过cyl
变量级别完成的每个回归的摘要。
现在,如果我想获得系数,例如,使用llply (sum,coefficients)
很容易,但是有时这是不可能的。在此示例中,如果我想在summary.lm
对象内获取fstatistic
元素,我唯一的机会是手动编写诸如sum$'4'$fstatistic
之类的内容,因为没有特定功能可以从此类中获得F-Statistic。
然后,需要一种使用操作员$
或类似功能的方法。请注意,上面的代码只是一个示例。我在这里要完成的工作是通过使用plyr's
运算符从summary.lm
或CC_12函数的dataframe
等元素中选择元素。
您可以通过将其包装在Backticks中来使用$
作为函数。
dlply (mtcars, .(cyl), lm, formula = mpg ~ wt) %>%
llply(summary) %>% `$`(`4`) %>% `$`(fstatistic)
value numdf dendf
9.316233 1.000000 9.000000
如果要将其应用于cyl
的所有级别,则可以使用sapply
dlply (mtcars, .(cyl), lm, formula = mpg ~ wt) %>%
llply(summary) %>% sapply(function(x) `$`(x, fstatistic))
4 6 8
value 9.316233 4.337245 8.795985
numdf 1.000000 1.000000 1.000000
dendf 9.000000 5.000000 12.000000