我有以下方式的数据集:
Incoming_Day STU_ID
1 2016-04-27 A033548
2 2017-05-18 A034571
3 2017-01-27 A034623
4 2016-01-04 A100170
5 2016-01-05 A100170
我想制作一个数据框,每天都会显示出来的学生数量。
我使用了以下代码:
df <- aggregate(data.frame(count = df$STU_ID), list(Incoming_Day= df$Incoming_Day), length); df[1:5,]
然而,我得到的结果是每天的观察次数。我相信我在这里犯了一个简单的错误。我怎样才能纠正它?
答案 0 :(得分:2)
aggregatedDF <- aggregate(data = df, STU_ID ~ Incoming_Day ,
function(x) length(unique(x)) )
答案 1 :(得分:1)
尝试使用函数(x),然后使用 length(unique(x)),如下所示:
aggregate(data.frame(count=df$STU_ID),list(Incoming_Day=df$Incoming_Day),
function(x) length(unique(x)))
输出:
Incoming_Day count
1 2016-01-04 1
2 2016-01-05 2
3 2016-04-27 1
4 2017-01-27 1
5 2017-05-18 1
示例数据:
df <- fread("Incoming_Day STU_ID
2016-04-27 A033548
2017-05-18 A034571
2017-01-27 A034623
2016-01-04 A100170
2016-01-05 A100170
2016-01-05 A100170
2016-01-05 A100172")