在分类变量中查找感兴趣的值

时间:2014-10-16 05:19:57

标签: r categorical-data

可以请有人回答我如何解决以下问题。 我数据集的一小部分是:

X    Y
3000 4
2090 5
2090 7
3000 9
2080 28
2119 19
3120 10
3120 12
2119 12
3000 13

我想在x的每个级别找出总和(y)。另外,请考虑它只是我的数据集的一部分,而x的分类变量包含100个级别,级别没有我可以简单地解决它们的模式,如1:100。 非常感谢提前!

2 个答案:

答案 0 :(得分:0)

您可以使用tapply或aggregate函数来执行此操作

让我们假设'数据'是保存值X和Y

的数据框

命令是

tapply(data$Y, data$X, sum)

aggregate(Y ~ X, FUN = sum, data = data)

答案 1 :(得分:0)

我建议使用“重型机械”(为提高效率,aggregate效率低,tapply不返回data.frame),例如data.tabledplyr个包,请尝试(假设您的数据集名为df

library(data.table)
setDT(df)[, list(SumY = sum(Y)), by = X]

或者

library(dplyr)
df %>%
  group_by(X) %>%
  summarise(sum(Y))