Как я могу использовать функцию PAD (из пакета PADR()) для нескольких фреймов данных?

У меня есть 24 файла (1 для каждого часа дня, HR_NBR = Hour Number), и я должен добавить даты в каждом из файлов.

КАК ЕСТЬ, данные:

CLNDR_DT    HR_NBR  QTY
01/07/2016  1   6
03/07/2016  1   10

Данные TO-BE:

CLNDR_DT    HR_NBR  QTY
01/07/2016  1   6
02/07/2016  NA  NA
03/07/2016  1   10

Я могу использовать функцию pad для каждого файла, например так:

chil_bev1_1 = pad (chil_bev1_1, interval= "day") # Hour1
chil_bev1_2 = pad (chil_bev1_2, interval= "day") # Hour2

и так далее.

И это работает. Но я хочу использовать цикл или LAPPLY.

Я пробовал несколько вариантов этих 2 кодов, но ни один из них не работал:

df1 = data.frame (chil_bev1_1)
df2 = data.frame (chil_bev1_2)
dflist = c("df1","df2")

code1:

x = function(df) {df %>% pad}
allpad = lapply(dflist,x)

Кодекса2:

x = function(df) {pad (df)}

allpad = lapply(dflist,x)

Ошибка

msgstr "х должен быть фреймом данных".

Я новичок в Р. Любая помощь будет принята с благодарностью.

Спасибо.

1 ответ

Мне удалось это выяснить. Вот ответ:

hour_list = list(chil_bev1_1, chil_bev1_2)
chil_bev1n = lapply (hour_list, function (x) {x %>% complete(CLNDR_DT = seq.Date(min(CLNDR_DT), max(CLNDR_DT), by="day"), fill = list(QTY=0))})

Заметки:

Функция fill = list() заменяет NA на 0.

CLNDR_DT - это имя столбца, который содержит даты.

Другие вопросы по тегам