Объединять кадры данных в списке по дате, а затем объединять - не удовлетворять? - PullRequest
0 голосов
/ 19 декабря 2018

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

Вот пример.У меня есть список фреймов данных, созданных путем разбиения на категориальные переменные.

list1df 93 obs of 6 variables:
- categoricalvar1: Factor w...
- categoricalvar2: Factor w...
- categoricalvar3: Factor w...
- numericvar1: num...
- numericvar2: num...
- thedate: Date, format "2018-11-13"...

list2df 3988 obs of 6 variables:
- categoricalvar1: Factor w...
- categoricalvar2: Factor w...
- categoricalvar3: Factor w...
- numericvar1: num...
- numericvar2: num...
- thedate: Date, format "2018-11-13"...

list3df 563 obs of 6 variables:
- categoricalvar1: Factor w...
- categoricalvar2: Factor w...
- categoricalvar3: Factor w...
- numericvar1: num...
- numericvar2: num...
- thedate: Date, format "2018-11-13"...

Я пытаюсь понять, как напечатать / sapply что-то вроде этого:

sumtable<- function(thedate,df,thefun)
{
  dfgrouped <- aggregate(. ~thedate, data=df, thefun, na.rm=TRUE)
  return(dfgrouped)
}

для каждого человекафрейм данных в списке, чтобы создать агрегированные фреймы по отдельным дням, после чего я буду использовать ldply (thebiglist, data.frame), чтобы склеить их все вместе.

Я не могу понять, как сделатьФункция sumtable работает с lapply и со всеми кадрами в списке.Заранее спасибо!

1 Ответ

0 голосов
/ 19 декабря 2018

Мы можем поместить data.frames в list и использовать aggregate с определенной функцией

lst <- lapply(mget(ls(pattern = '^list\\d+df$')), function(x) 
    aggregate(. ~ thedate, data = x, FUN = max, na.rm = TRUE))

do.call(rbind, lst)
...