На мой взгляд, довольно интуитивно понятный и простой в обслуживании метод:
data.frame(product=names(My_list),
do.call(rbind, lapply(My_list, FUN=function(x) unlist(x["sales"]))), row.names = NULL)
product sales1 sales2 sales3
1 product1 1 2 3
2 product2 4 5 6
Он просматривает список списков, используя lapply
, и выводит из списка все записи sales
(которые автоматически присваивают им имена). Тогда это rbind
s векторы вместе, используя do.call
.
Быстрый способ добавить название модели в таблицу - использовать rapply
, который по умолчанию выводит список результатов (см. ?rapply
и аргумент how
)
data.frame(model=rapply(My_list, f=paste, classes="character"),
product=names(My_list),
do.call(rbind, lapply(My_list, FUN=function(x) unlist(x["sales"]))), row.names = NULL)
model product sales1 sales2 sales3
1 arima product1 1 2 3
2 prophet product2 4 5 6