聚合和表函数之间的差异

时间:2017-03-08 23:06:05

标签: r

Age <- c(90,56,51,64,67,59,51,55,48,50,43,57,44,55,60,39,62,66,49,61,58,55,45,47,54,56,52,54,50,62,48,52,50,65,59,68,55,78,62,56)

Tenure <- c(2,2,3,4,3,3,2,2,2,3,3,2,4,3,2,4,1,3,4,2,2,4,3,4,1,2,2,3,3,1,3,4,3,2,2,2,2,3,1,1)

df <- data.frame(Age, Tenure)

我试图计算Tenure的唯一值,因此我使用table()函数查看频率

table(df$Tenure)

1  2  3  4 
5 15 13  7

但我很想知道aggregate()功能显示的内容?

aggregate(Age~Tenure , df, function(x) length(unique(x)))

Tenure Age
1      1   3
2      2  13
3      3  11
4      4   7

这两个输出之间有什么区别?

1 个答案:

答案 0 :(得分:4)

造成差异的原因是您在unique中加入了aggregate。您按照终身教职数计算不同年龄的数量,而不是终身教职的年龄数。要使用aggregate尝试

获取类似输出
aggregate(Age~Tenure , df, length)
  Tenure Age
1      1   5
2      2  15
3      3  13
4      4   7