我有24个文件(一天中每小时一个,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")CODE1:
x = function(df) {df %>% pad}
allpad = lapply(dflist,x)CODE2:
x = function(df) {pad (df)}
allpad = lapply(dflist,x)错误是
"x必须是一个数据框架“。
我是新来的。任何帮助都将不胜感激。
谢谢。
发布于 2018-07-25 08:57:35
我设法弄明白了。以下是答案:
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))})备注:
函数将NAs替换为0。
CLNDR_DT是包含日期的列的名称。
https://stackoverflow.com/questions/51305016
复制相似问题