在R数据表中参数化列名称

时间:2018-08-08 00:04:49

标签: r data.table

我正在尝试获得一组列名称和期间的滚动平均值和总和。我需要对函数进行概括,因为列数和句点数导致笛卡尔积大于1000。到目前为止,我已经设法将period作为参数,但是无法对该列进行设置。

我想要的示例代码:

periods = c(1, 3, 5)
col_names = c(SALES, DROPOUT)

for(period in periods) {
    for(col_name in col_names) {
        df[, c(
            paste0('MEAN_', col_name, '_', period), 
            paste0('SUM_', col_name, '_', period)
        ) := list(
            rollapply(col_name, width=period, fill=NA, partial=T, align='right', FUN=function(x) mean(x, na.rm=T)),
            rollapply(col_name, width=period, fill=NA, partial=T, align='right', FUN=function(x) sum(x, na.rm=T))
        )]
    }
}

但是以上情况都会导致错误:

Error in sum(x, na.rm = T) : invalid 'type' (character) of argument 

它不将col_name识别为在其上运行mean函数的列名。关于如何使列名成为参数的任何提示?

0 个答案:

没有答案