首页 > 解决方案 > 数据表 R - 聚合

问题描述

我想在 R 中聚合数据,但是以一种非常通用的方式,将右侧(列)作为字符串存储在对象中。下面是示例表达式

aggregate(PATTERN_ID ~ Year + Week), data, length)

因此,在我的情况下,右侧“年+周”将根据需要进行更改,我想将其作为存储在变量中的字符串传递。我尝试使用评估策略,但没有给出所需的输出。以下是我尝试过的:

exp_aggregate_by  = 'Year + Week'
aggregate(PATTERN_ID ~ eval.quoted(parse(text = exp_aggregate_by)), data, length)

人民的任何意见将不胜感激。通过数据表也可以。谢谢

标签: r

解决方案


创建一个公式,paste它应该可以工作

data(mtcars)
grp <- 'cyl + gear'
aggregate(formula(paste('mpg ~', grp)), mtcars, length)

对于 OP 的数据集,

aggregate(formula(paste('PATTERN_ID ~', exp_aggregate_by)), data, length)

推荐阅读