我有一个问题: 我根据温度(自变量)使用具有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的第二项,对于每个物种),我也想将它保存在一个向量中(按顺序用它来计算索引)。
有关这方面的任何有用提示吗?
答案 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]]))