объединение одинаковых фреймов данных вложенного списка в r

#r #nested-lists #addition

#r #вложенные списки #добавление

Вопрос:

Я пытаюсь суммировать множество фреймов данных вложенного списка (своего рода матричная сумма; одна и та же ячейка в одном фрейме данных с такой же ячейкой в другом …). Список имеет три уровня и выглядит следующим образом:

— первый уровень представлен числами (например, от 1 до 5)

— вторые уровни включают месяцы (с января по декабрь)

— фрейм данных третьего уровня состоит из 31 строки и 31 столбца).

Итак, что я хотел сделать, это получить новый фрейм данных, который содержит сумму за тот же месяц для чисел от 1 до 5.

Я получаю желаемый результат, если суммирую фреймы данных следующим образом:

 month <- listname[[1]][["month"]]   listname[[2]][["month"]]   listname[[3]][["month"]]   listname[[4]][["month"]]....

  

Поскольку я должен автоматизировать этот процесс для чисел от 1 до N, я не могу использовать дополнение, используемое в приведенном выше примере.

Я надеюсь, что вы, добрые люди из этого сообщества, сможете помочь мне найти решение.

Грегор

Комментарии:

1. Можете ли вы поделиться образцами данных?

Ответ №1:

Посмотрите, работает ли приведенное ниже. Результатом должен быть список с желаемым результатом для каждого месяца

 # change months to in format as in your data.
months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")

lapply(months, function(month){
  Reduce(` `,
         lapply(listname, function(x) {
           x[[month]]
         }))
})