<分区>
一个看似简单的问题让我很忙。
我有一个数据框:
> df1
Name Score
1 Ben 1
2 Ben 2
3 John 1
4 John 2
5 John 3
我想像这样创建表格的摘要:
> df2
Name Score_1 Score_2 Score_3
1 Ben 1 1 0
2 John 1 1 1
因此 df2 必须 (i) 仅显示唯一的“姓名”,并且 (ii) 根据“分数”中的唯一因素创建列,并且 (iii) 计算一个人获得该分数的次数。
我试过:
df2 <- ddply(df1, c("Name"), summarise
,Score_1 = sum(df1$Score == 1)
,Score_2 = sum(df1$Score == 2)
,Score_3 = sum(df1$Score == 3))
产生:
Name Score_1 Score_2 Score_3
1 Ben 2 2 1
2 John 2 2 1
所以我的尝试错误地计算了所有的出现次数,而不是计算“每组”
编辑:
根据评论,还尝试了 reshape
(可能只是做错了):
> reshape(df1, idvar = "Name", timevar = "Score", direction = "wide")
Name
1 Ben
3 John
首先,缺少“分数”列,但更糟糕的是,根据我对 reshape
的研究,我不相信我会得到一个计数 每个因素,这就是重点。