调用plyr函数

时间:2017-09-15 15:48:24

标签: r plyr

我根据lmplyr函数的因子级别对某些回归进行拟合,但在尝试访问summary.lm类的内容时发现问题。

举个例子,我正在运行类似的东西:

sum = dlply (mtcars, .(cyl), lm, formula = mpg ~ wt) %>%
  llply(summary)

这为按cyl变量的级别完成的每个回归提供了摘要。

现在,如果我想获得系数,那么使用llply (sum,coefficients)很容易,但有时这是不可能的。在这个例子中,如果我想在fstatistic对象中获取summary.lm元素,我唯一的机会是手动编写类似sum$'4'$fstatistic的东西,因为没有特定的函数来获取F - 这个阶级的统计。

然后,需要一种使用运算符$或类似函数的方法。请注意,上面的代码只是一个例子。我在这里要完成的是使用summary.lm运算符从dataframe函数的输出中选择plyr's$对象中的元素。

1 个答案:

答案 0 :(得分:1)

您可以将$作为函数包含在反引号中。

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