Соедините список и список вместе, используя bind_cols - PullRequest
1 голос
/ 11 февраля 2020

Я пытаюсь связать вместе 2 списка. Один из них представляет собой список элементов, а другой - список элементов.

Выполнение следующего:

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

Почти получается то, что я хочу, но я хотел бы объединить данные вместе и сохранить формат списка. То есть объедините данные в d1 с каждым из списков 4 в d1. Таким образом, столбец glm будет иметь данные из d1, и это будет повторяться для списков svm.formula, randomForest.formula и xgb.Booster. Я хочу связать данные в d1 с каждым из списка 4 в d2. Таким образом, ожидаемый результат для списка [[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

Но когда я хочу отобразить и применить его ко всем спискам, я получаю предыдущие результаты РЕДАКТИРОВАНИЯ.

РЕДАКТИРОВАТЬ 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 и не помещать их в фрейм данных.

Ответы [ 2 ]

2 голосов
/ 11 февраля 2020

Здесь мы можем использовать map2 до l oop для двух lists, затем map для внутренних list вторых данных и cbind или bind_cols первых данных с второй

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

Здесь .x назначается объекту, потому что во втором map, когда мы используем ~, это будет .x, связанный с data.frames от .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
1 голос
/ 11 февраля 2020

Я думаю, это то, что вы хотите - дайте мне знать, как это выглядит. Он связывает каждый элемент 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)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...