提取嵌套列表中的项目

时间:2015-08-16 23:03:34

标签: r list nested

我有一个问题: 我根据温度(自变量)使用具有5种物种的开发时间(因变量)的数据框架 使用“by”函数我计算了所有五种物种的lm

by(dados, dados$Especie, function(dados) lm(dados$Tempo ~ dados$Temp, data = dados)

因此我得到了嵌套在其他列表中的列表,因为你可以在这里看到

List of 5
 $ C.albiceps   :List of 12
  ..$ coefficients : Named num [1:2] 262.78 -1.76
  .. ..- attr(*, "names")= chr [1:2] "(Intercept)" "dados$Temp"
  ..$ residuals    : Named num [1:41] -4.157 -2.394 -0.631 1.131 2.894 ...
  .. ..- attr(*, "names")= chr [1:41] "1" "2" "3" "4" ...
  ..$ effects      : Named num [1:41] -1344.031 -133.548 0.235 1.977 3.72 ...
  .. ..- attr(*, "names")= chr [1:41] "(Intercept)" "dados$Temp" "" "" ...
  ..$ rank         : int 2

这是一个包含5个元素的列表(每个物种一个),每个物种都是12个元素的列表(来自lm函数)。所以,5个列表中有12个,在5个列表中。

现在,我的问题: 我想从我的系数中提取值并总结它们。所以我得到了 列出$ speciesName $ coefficients [2]并且我想提取每个值($ items的第二项,对于每个物种),我也想将它保存在一个向量中(按顺序用它来计算索引)。

有关这方面的任何有用提示吗?

1 个答案:

答案 0 :(得分:2)

您可以使用apply函数循环遍历模型,并使用coef提取系数。

## Example
mods <- by(mtcars, mtcars$cyl, function(x) lm(mpg ~ disp, data=x))

## Sum up all the second coefficients
sum(sapply(mods, function(x) coef(x)[[2]]))