r-呼叫Plyr功能后,请使用美元操作员($)



我正在使用lmplyr函数拟合一些因素的回归,但是我在尝试访问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

最新更新