0

我有 24 个文件(一天中的每个小时 1 个,HR_NBR = 小时数),我必须在每个文件中填充日期。

现状数据:

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

未来数据:

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。

我尝试了这两个代码的几种变体,但没有一个起作用:

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

代码1:

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

代码2:

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

allpad = lapply(dflist,x)

错误是

“x 必须是一个数据框”。

我是 R 新手。任何帮助将不胜感激。

谢谢你。

4

1 回答 1

0

我设法弄清楚了。这是答案:

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 是包含日期的列的名称。

于 2018-07-25T08:57:35.860 回答