Reputation: 7117
I am trying to bind together 2 lists. One is a list of tibbles and the other is a list of list of tibbles.
Running the following:
map2(
.x = d1,
.y = d2,
~bind_cols(.x, .y)
)
Almost gets what I want but I would like to join the data together and keep the list format. That is join the data in d1
to each of the lists of 4 in d1
. Such that, the tibble glm
will have the data from d1
, and this will be repeated for the svm.formula
, randomForest.formula
and xgb.Booster
lists. I want to bind the data in d1
to each of the list of 4 in d2
. So the expected output for list [[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
Which is just the model joined with the data from list 12.
Data 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")))
Data 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"
))))
EDIT:
This almost gets what I want:
map(d2, ~map(., ~cbind(., d1)))
But it repeats the values:
[[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
EDIT 2:
This gets an output:
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
But when I want to map over and apply it to all lists I get the previous EDIT results.
EDIT 3: Attempt:
map2(d1, map(d2, ~map(., ~tibble(.))), ~cbind(.x, .y))
Which gives:
[[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
Which is very close to what I want. Just I wanted to keep the lists glm
, svm.formula
, randomForest
and xgb.Booster
and not put them into a dataframe.
Upvotes: 1
Views: 190
Reputation: 887301
Here, we can use map2
to loop over the two lists
, then map
over the inner list
of the second data and cbind
or bind_cols
of the first data with the second
out <- map2(d1, d2, ~ {dat <- .x
map(.y, ~ bind_cols(dat, .x))})
Here, the .x
is assigned to an object because in the second map
, when we use ~
, it would be the .x
related to the data.frames from the .y
.
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
Upvotes: 2
Reputation: 5138
I think this is what you want--let me know how this looks. It cbinds each element of d2
to the coresponding element of d1
. You end up with a nested list of 4 (with 12 dataframes in each list).
# 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))
I used 1:4
with lapply()
but it may be prudent to make it break if there are different list lengths (e.g., 1:unique(lengths(d2))
| 1:max(lengths(d2))
)
Upvotes: 1