将列名传递给在R中运行另一个函数的函数

时间:2016-04-19 16:19:05

标签: r

我正在使用dplyr包在数据帧中运行一个eggregation。例如,我可以将我的数据框与我想要聚合的2列(Col_1,Col_2)以及实际聚合的列(Col_to_Agg)一起传递。

agg_frame <- dcast(setDT(data_frame), Col_1+Col_2~Col_to_Agg, length)

如果我在自定义函数中使用此方法,如何传入Col_1,Col2和Col_to_Agg?如果我只是将这些列作为名称传递,它就无法工作。

换句话说,我想这样做:

aggregate <- function(data_frame, Col_1, Col_2, Col_to_Agg) {

    agg_frame <- dcast(setDT(data_frame), Col_1+Col_2~Col_to_Agg, length)
    return(agg_frame)

}

1 个答案:

答案 0 :(得分:1)

as.formula(paste(Col_1,'+',Col_2,'~',Col_to_Agg))