r-如何将lm模型的两个列表元素结合起来



我有两个由lm生成的拟合列表,我想按元素组合它们。

现在,我有这样的东西:fits1=list(fit1、fit2、fit3((其中fit1、fit2和fit3是lm生成的模型(,fits2=list(fit4、fit5、fit6(。

我想做的是生成一个按元素组合的列表:list(list(fit1,fit4(,list(fit2,fit5(,列表(fit3、fit6((。

我发现了一些关于如何按元素组合列表的东西,但我看到的所有解决方案都需要切换到数据帧,并且不能在数据帧中包含lm类的元素。

谢谢!

我认为Map会为您提供您想要的东西。

fits1 <- list("fit1", "fit2", "fit3")
fits2 <- list("fit4", "fit5", "fit6")
Map(list, fits1, fits2)

结果:

[[1]]
[[1]][[1]]
[1] "fit1"
[[1]][[2]]
[1] "fit4"

[[2]]
[[2]][[1]]
[1] "fit2"
[[2]][[2]]
[1] "fit5"

[[3]]
[[3]][[1]]
[1] "fit3"
[[3]][[2]]
[1] "fit6"

tidyverse中,这将使用purrr

library(purrr)
map2(fits1, fits2, list)

另一种base解决方案

asplit(rbind(list1, list2), MARGIN = 2)

它相当于

asplit(cbind(list1, list2), MARGIN = 1)

测试

fits1 <- list("fit1", "fit2", "fit3")
fits2 <- list("fit4", "fit5", "fit6")
asplit(rbind(fits1, fits2), 2)
[[1]]
[[1]]$fits1
[1] "fit1"
[[1]]$fits2
[1] "fit4"

[[2]]
[[2]]$fits1
[1] "fit2"
[[2]]$fits2
[1] "fit5"

[[3]]
[[3]]$fits1
[1] "fit3"
[[3]]$fits2
[1] "fit6"

最新更新