我有一个数据集,如下所示。
id samediff gainloss factor value
1 S G give 3
1 S G impact 4
2 S L give 2
2 S L impact 5
3 D G give 1
3 D G impact 4
4 D L give 3
4 D L impact 5
我想为每个因子创建一个线性模型,以测试samediff变量和gainloss变量之间的相互作用。当我尝试以下代码时,我得到的输出仅包含系数,并且不包含每个线性模型的完整信息(特别是在为模型编写summary(lm)时给出的信息)。
尝试1:
lm <- dff %>%
split(.$factor) %>%
map(~lm(value~(samediff*gainloss), .x))
lm
尝试2:
lm2 <- dff %>%
group_by(factor) %>%
summarise(lm = list(lm(value~(samediff*gainloss))))
lm3<-lm2$lm; names(lm3) <- lm2$factor
lm3
完整的数据集包含的因子比此处包含的因子更多。如何调整此值,以便获得所生成的每个模型的summary()输出?
答案 0 :(得分:1)
如果可以使用基数R,这是一种方法。
lm_list <- lapply(split(dff, dff$factor), function(DF) lm(value ~ samediff*gainloss, DF))
然后您可以运行,例如
lapply(lm_list, coef)
lapply(lm_list, summary)