如何对多个数据帧使用 PAD 函数(来自 PADR() 包)?
How can I use PAD function (from PADR() package) for multiple data frames?
我有 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.
我尝试了这两个代码的几种变体,但其中 none 个有效:
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 must be a data frame".
我是 R 的新手。非常感谢任何帮助。
谢谢。
我设法弄明白了。答案如下:
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 是包含日期的列的名称。
我有 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.
我尝试了这两个代码的几种变体,但其中 none 个有效:
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 must be a data frame".
我是 R 的新手。非常感谢任何帮助。
谢谢。
我设法弄明白了。答案如下:
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 是包含日期的列的名称。