使用 bind_cols 将列表和列表列表联接在一起



我正在尝试将 2 个列表绑定在一起。一个是提布斯列表,另一个是提布斯列表。

运行以下命令:

map2(
.x = d1,
.y = d2,
~bind_cols(.x, .y)
)

几乎得到了我想要的,但我想将数据连接在一起并保持列表格式。即将d1中的数据连接到d1中 4 个列表中的每个列表。这样,tibbleglm将有来自d1的数据,这将在svm.formularandomForest.formulaxgb.Booster列表中重复。我想将d1中的数据绑定到d2中的 4 个列表中的每个。因此,列表的预期输出[[12]]$xgb.Booster

[[12]]$xgb.Booster
# A tibble: 6 x 2
xgb.Booster_Model xgb.Booster_Prediction      Petal.Length Petal.Width
<chr>                              <dbl>      
1 xgb.Booster                        0.254      3.3        1
2 xgb.Booster                        0.254      3.3        1.01
3 xgb.Booster                        0.254      3.3        1.02
4 xgb.Booster                        0.254      3.3        1.02
5 xgb.Booster                        0.254      3.3        1.03
6 xgb.Booster                        0.254      3.3        1.04

这只是与列表 12 中的数据连接的模型。

数据 1:

d1 <- list(structure(list(Sepal.Width = c(2.3, 2.3, 2.3, 2.3, 2.3, 
2.3), Sepal.Length = c(5, 5.00854271356784, 5.01708542713568, 
5.02562814070352, 5.03417085427136, 5.0427135678392)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), structure(list(
Petal.Length = c(3.3, 3.3, 3.3, 3.3, 3.3, 3.3), Sepal.Length = c(5, 
5.00854271356784, 5.01708542713568, 5.02562814070352, 5.03417085427136, 
5.0427135678392)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), structure(list(Petal.Width = c(1, 1, 1, 
1, 1, 1), Sepal.Length = c(5, 5.00854271356784, 5.01708542713568, 
5.02562814070352, 5.03417085427136, 5.0427135678392)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), structure(list(
Sepal.Length = c(5, 5, 5, 5, 5, 5), Sepal.Width = c(2.3, 
2.30502512562814, 2.31005025125628, 2.31507537688442, 2.32010050251256, 
2.3251256281407)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), structure(list(Petal.Length = c(3.3, 3.3, 
3.3, 3.3, 3.3, 3.3), Sepal.Width = c(2.3, 2.30502512562814, 2.31005025125628, 
2.31507537688442, 2.32010050251256, 2.3251256281407)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), structure(list(
Petal.Width = c(1, 1, 1, 1, 1, 1), Sepal.Width = c(2.3, 2.30502512562814, 
2.31005025125628, 2.31507537688442, 2.32010050251256, 2.3251256281407
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
)), structure(list(Sepal.Length = c(5, 5, 5, 5, 5, 5), Petal.Length = c(3.3, 
3.31206030150754, 3.32412060301508, 3.33618090452261, 3.34824120603015, 
3.36030150753769)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), structure(list(Sepal.Width = c(2.3, 2.3, 
2.3, 2.3, 2.3, 2.3), Petal.Length = c(3.3, 3.31206030150754, 
3.32412060301508, 3.33618090452261, 3.34824120603015, 3.36030150753769
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
)), structure(list(Petal.Width = c(1, 1, 1, 1, 1, 1), Petal.Length = c(3.3, 
3.31206030150754, 3.32412060301508, 3.33618090452261, 3.34824120603015, 
3.36030150753769)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), structure(list(Sepal.Length = c(5, 5, 
5, 5, 5, 5), Petal.Width = c(1, 1.00753768844221, 1.01507537688442, 
1.02261306532663, 1.03015075376884, 1.03768844221106)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), structure(list(
Sepal.Width = c(2.3, 2.3, 2.3, 2.3, 2.3, 2.3), Petal.Width = c(1, 
1.00753768844221, 1.01507537688442, 1.02261306532663, 1.03015075376884, 
1.03768844221106)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), structure(list(Petal.Length = c(3.3, 3.3, 
3.3, 3.3, 3.3, 3.3), Petal.Width = c(1, 1.00753768844221, 1.01507537688442, 
1.02261306532663, 1.03015075376884, 1.03768844221106)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")))

数据 2:

d2 <- list(list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.387733846902847, 0.387733846902847, 
0.387733846902847, 0.387733846902847, 0.387733846902847, 0.387733846902847
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.25353929400444, 0.25353929400444, 
0.25353929400444, 0.25353929400444, 0.25353929400444, 0.25353929400444
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.27374342083931, 0.27374342083931, 
0.27374342083931, 0.27374342083931, 0.27374342083931, 0.27374342083931
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.387733846902847, 0.387733846902847, 
0.387733846902847, 0.387733846902847, 0.387733846902847, 0.387733846902847
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.25353929400444, 0.25353929400444, 
0.25353929400444, 0.25353929400444, 0.25353929400444, 0.25353929400444
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.27374342083931, 0.27374342083931, 
0.27374342083931, 0.27374342083931, 0.27374342083931, 0.27374342083931
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.25353929400444, 0.25353929400444, 
0.25353929400444, 0.25353929400444, 0.25353929400444, 0.25353929400444
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.25353929400444, 0.25353929400444, 
0.25353929400444, 0.25353929400444, 0.25353929400444, 0.25353929400444
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.25353929400444, 0.25353929400444, 
0.25353929400444, 0.25353929400444, 0.25353929400444, 0.25353929400444
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.27374342083931, 0.27374342083931, 
0.27374342083931, 0.27374342083931, 0.27374342083931, 0.27374342083931
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.27374342083931, 0.27374342083931, 
0.27374342083931, 0.27374342083931, 0.27374342083931, 0.27374342083931
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))), list(glm = structure(list(glm_Model = c("glm", "glm", "glm", 
"glm", "glm", "glm"), glm_Prediction = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")), svm.formula = structure(list(
svm.formula_Model = c("svm.formula", "svm.formula", "svm.formula", 
"svm.formula", "svm.formula", "svm.formula"), svm.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), randomForest.formula = structure(list(
randomForest.formula_Model = c("randomForest.formula", "randomForest.formula", 
"randomForest.formula", "randomForest.formula", "randomForest.formula", 
"randomForest.formula"), randomForest.formula_Prediction = c(0, 
0, 0, 0, 0, 0)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame")), xgb.Booster = structure(list(xgb.Booster_Model = c("xgb.Booster", 
"xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster", "xgb.Booster"
), xgb.Booster_Prediction = c(0.25353929400444, 0.25353929400444, 
0.25353929400444, 0.25353929400444, 0.25353929400444, 0.25353929400444
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))))

编辑:

这几乎得到了我想要的:

map(d2, ~map(., ~cbind(., d1)))

但它重复了这些值:

[[12]]$xgb.Booster
xgb.Booster_Model xgb.Booster_Prediction Sepal.Width Sepal.Length Petal.Length
1       xgb.Booster              0.2535393         2.3     5.000000          3.3
2       xgb.Booster              0.2535393         2.3     5.008543          3.3
3       xgb.Booster              0.2535393         2.3     5.017085          3.3
4       xgb.Booster              0.2535393         2.3     5.025628          3.3
5       xgb.Booster              0.2535393         2.3     5.034171          3.3
6       xgb.Booster              0.2535393         2.3     5.042714          3.3
Sepal.Length Petal.Width Sepal.Length Sepal.Length Sepal.Width Petal.Length Sepal.Width
1     5.000000           1     5.000000            5    2.300000          3.3    2.300000
2     5.008543           1     5.008543            5    2.305025          3.3    2.305025
3     5.017085           1     5.017085            5    2.310050          3.3    2.310050
4     5.025628           1     5.025628            5    2.315075          3.3    2.315075
5     5.034171           1     5.034171            5    2.320101          3.3    2.320101
6     5.042714           1     5.042714            5    2.325126          3.3    2.325126
Petal.Width Sepal.Width Sepal.Length Petal.Length Sepal.Width Petal.Length Petal.Width
1           1    2.300000            5     3.300000         2.3     3.300000           1
2           1    2.305025            5     3.312060         2.3     3.312060           1
3           1    2.310050            5     3.324121         2.3     3.324121           1
4           1    2.315075            5     3.336181         2.3     3.336181           1
5           1    2.320101            5     3.348241         2.3     3.348241           1
6           1    2.325126            5     3.360302         2.3     3.360302           1
Petal.Length Sepal.Length Petal.Width Sepal.Width Petal.Width Petal.Length Petal.Width
1     3.300000            5    1.000000         2.3    1.000000          3.3    1.000000
2     3.312060            5    1.007538         2.3    1.007538          3.3    1.007538
3     3.324121            5    1.015075         2.3    1.015075          3.3    1.015075
4     3.336181            5    1.022613         2.3    1.022613          3.3    1.022613
5     3.348241            5    1.030151         2.3    1.030151          3.3    1.030151
6     3.360302            5    1.037688         2.3    1.037688          3.3    1.037688

编辑2:

这将得到一个输出:

dd2 <- d2[[1]]$glm
dd1 <- d1[[1]]
cbind(dd1, dd2)
Sepal.Width Sepal.Length glm_Model glm_Prediction
1         2.3     5.000000       glm              0
2         2.3     5.008543       glm              0
3         2.3     5.017085       glm              0
4         2.3     5.025628       glm              0
5         2.3     5.034171       glm              0
6         2.3     5.042714       glm              0

但是当我想映射并将其应用于所有列表时,我会得到以前的 EDIT 结果。

编辑3:尝试:

map2(d1, map(d2, ~map(., ~tibble(.))), ~cbind(.x, .y))

这给了:

[[12]]
Petal.Length Petal.Width glm.glm_Model glm.glm_Prediction svm.formula.svm.formula_Model
1          3.3    1.000000           glm                  0                   svm.formula
2          3.3    1.007538           glm                  0                   svm.formula
3          3.3    1.015075           glm                  0                   svm.formula
4          3.3    1.022613           glm                  0                   svm.formula
5          3.3    1.030151           glm                  0                   svm.formula
6          3.3    1.037688           glm                  0                   svm.formula
svm.formula.svm.formula_Prediction randomForest.formula.randomForest.formula_Model
1                                  0                            randomForest.formula
2                                  0                            randomForest.formula
3                                  0                            randomForest.formula
4                                  0                            randomForest.formula
5                                  0                            randomForest.formula
6                                  0                            randomForest.formula
randomForest.formula.randomForest.formula_Prediction xgb.Booster.xgb.Booster_Model
1                                                    0                   xgb.Booster
2                                                    0                   xgb.Booster
3                                                    0                   xgb.Booster
4                                                    0                   xgb.Booster
5                                                    0                   xgb.Booster
6                                                    0                   xgb.Booster
xgb.Booster.xgb.Booster_Prediction
1                          0.2535393
2                          0.2535393
3                          0.2535393
4                          0.2535393
5                          0.2535393
6                          0.2535393

这非常接近我想要的。只是我想保持列表glmsvm.formularandomForestxgb.Booster,而不是将它们放入数据帧中。

在这里,我们可以使用map2遍历两个lists,然后map第二个数据的内list,第一个数据与第二个数据cbindbind_cols

out <- map2(d1, d2, ~ {dat <- .x
map(.y, ~ bind_cols(dat, .x))})

在这里,.x被分配给一个对象,因为在第二个map中,当我们使用~,它将是与.y中的 data.frame 相关的.x

out[[1]]
#$glm
# A tibble: 6 x 4
#  Sepal.Width Sepal.Length glm_Model glm_Prediction
#        <dbl>        <dbl> <chr>              <dbl>
#1         2.3         5    glm                    0
#2         2.3         5.01 glm                    0
#3         2.3         5.02 glm                    0
#4         2.3         5.03 glm                    0
#5         2.3         5.03 glm                    0
#6         2.3         5.04 glm                    0
#$svm.formula
# A tibble: 6 x 4
#  Sepal.Width Sepal.Length svm.formula_Model svm.formula_Prediction
#        <dbl>        <dbl> <chr>                              <dbl>
#1         2.3         5    svm.formula                            0
#2         2.3         5.01 svm.formula                            0
#3         2.3         5.02 svm.formula                            0
#4         2.3         5.03 svm.formula                            0
#5         2.3         5.03 svm.formula                            0
#6         2.3         5.04 svm.formula                            0
#$randomForest.formula
# A tibble: 6 x 4
#  Sepal.Width Sepal.Length randomForest.formula_Model randomForest.formula_Prediction
#        <dbl>        <dbl> <chr>                                                <dbl>
#1         2.3         5    randomForest.formula                                     0
#2         2.3         5.01 randomForest.formula                                     0
#3         2.3         5.02 randomForest.formula                                     0
#4         2.3         5.03 randomForest.formula                                     0
#5         2.3         5.03 randomForest.formula                                     0
#6         2.3         5.04 randomForest.formula                                     0
#$xgb.Booster
# A tibble: 6 x 4
#  Sepal.Width Sepal.Length xgb.Booster_Model xgb.Booster_Prediction
#        <dbl>        <dbl> <chr>                              <dbl>
#1         2.3         5    xgb.Booster                        0.388
#2         2.3         5.01 xgb.Booster                        0.388
#3         2.3         5.02 xgb.Booster                        0.388
#4         2.3         5.03 xgb.Booster                        0.388
#5         2.3         5.03 xgb.Booster                        0.388
#6         2.3         5.04 xgb.Booster                        0.388

我认为这就是你想要的——让我知道它的外观。它将d2的每个元素绑定到d1的对应元素。最终会得到一个包含 4 个的嵌套列表(每个列表中有 12 个数据帧(。

# Are all elements of d2 the same length?
var(lengths(d2)) == 0
[1] TRUE
# Cbind by element of d2
lapply(1:4, function(i) Map(function(x, y) cbind(x[[i]], y), d2, d1))

我用1:4lapply(),但如果有不同的列表长度(例如,1:unique(lengths(d2))|1:max(lengths(d2))(

最新更新