我正在尝试将 2 个列表绑定在一起。一个是提布斯列表,另一个是提布斯列表。
运行以下命令:
map2(
.x = d1,
.y = d2,
~bind_cols(.x, .y)
)
几乎得到了我想要的,但我想将数据连接在一起并保持列表格式。即将d1
中的数据连接到d1
中 4 个列表中的每个列表。这样,tibbleglm
将有来自d1
的数据,这将在svm.formula
、randomForest.formula
和xgb.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
这非常接近我想要的。只是我想保持列表glm
,svm.formula
,randomForest
和xgb.Booster
,而不是将它们放入数据帧中。
在这里,我们可以使用map2
遍历两个lists
,然后map
第二个数据的内list
,第一个数据与第二个数据cbind
或bind_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:4
lapply()
,但如果有不同的列表长度(例如,1:unique(lengths(d2))
|1:max(lengths(d2))
(