可以请有人回答我如何解决以下问题。 我数据集的一小部分是:
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。 非常感谢提前!
答案 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.table
或dplyr
个包,请尝试(假设您的数据集名为df
)
library(data.table)
setDT(df)[, list(SumY = sum(Y)), by = X]
或者
library(dplyr)
df %>%
group_by(X) %>%
summarise(sum(Y))