У меня есть функция, которая выводит результаты в виде списка с под-подсписками. Я применил эту функцию к нескольким наборам входов, поэтому теперь у меня есть список списков вывода.
Т.е. мой список списков вывода выглядит следующим образом:
main_list <- list("list1" = list("sublist1" = rbind(iris, iris, iris),
"sublist2" = starwars,
"sublist3" = list("subsublist1" = iris,
"subsublist2" = rbind(starwars, starwars))),
"list2" = list("sublist1" = iris,
"sublist2" = rbind(starwars, starwars, starwars),
"sublist3" = list("subsublist1" = rbind(iris, iris),
"subsublist2" = starwars)))
list1, list2 .... В списке всегда есть одинаковые элементы, и я хотел бы объединить их в один список. Структура объединенного списка будет такой же, как и у основных списков. Например:
# list_combined[["list1"]][["sublist1"]]
dplyr::bind_rows(
main_list$list1$sublist1 %>%
dplyr::mutate(src = names(main_list[1])),
main_list$list2$sublist1 %>%
dplyr::mutate(src = names(main_list[2]))
)
# list_combined[["list1"]][["sublist3"]][["subsublist2"]]
dplyr::bind_rows(
main_list$list1$sublist3$subsublist2 %>%
dplyr::mutate(src = names(main_list[1])),
main_list$list2$sublist3$subsublist2 %>%
dplyr::mutate(src = names(main_list[2]))
)
Таким образом, каждый фрейм данных связан с сохранением исходной структуры списка, за исключением добавленного столбца «источник»