【发布时间】:2015-03-11 11:25:31
【问题描述】:
更新:我有一个如下所示的数据框“测试”:
session_id seller_feedback_score
1 1 282470
2 1 275258
3 1 275258
4 1 275258
5 1 37831
6 1 282470
7 1 26
8 1 138351
9 1 321350
10 1 841
11 1 138351
12 1 17263
13 1 282470
14 1 396900
15 1 282470
16 1 282470
17 1 321350
18 1 321350
19 1 321350
20 1 0
21 1 1596
22 7 282505
23 7 275283
24 7 275283
25 7 275283
26 7 37834
27 7 282505
28 7 26
29 7 138359
30 7 321360
和一个代码(使用包 plyr)显然应该在每组 session_id 中对“seller_feedback_score”进行排名:
test <- test %>% group_by(session_id) %>%
mutate(seller_feedback_score_rank = dense_rank(-seller_feedback_score))
然而,真正发生的是 R 将整个数据帧排列在一起,而不涉及组(session_id):
session_id seller_feedback_score seller_feedback_score_rank_2
1 1 282470 5
2 1 275258 7
3 1 275258 7
4 1 275258 7
5 1 37831 11
6 1 282470 5
7 1 26 15
8 1 138351 9
9 1 321350 3
10 1 841 14
11 1 138351 9
12 1 17263 12
13 1 282470 5
14 1 396900 1
15 1 282470 5
16 1 282470 5
17 1 321350 3
18 1 321350 3
19 1 321350 3
20 1 0 16
21 1 1596 13
22 7 282505 4
23 7 275283 6
24 7 275283 6
25 7 275283 6
26 7 37834 10
27 7 282505 4
28 7 26 15
29 7 138359 8
30 7 321360 2
我通过计算唯一的 'seller_feedback_score_rank' 值来检查这一点,毫不奇怪它等于最高排名值。如果有人可以复制和帮助,我将不胜感激。谢谢
【问题讨论】:
-
相同的分数获得相同的排名
-
对不起,但由于依赖包lazyeval,我似乎无法安装dplyr。当我尝试安装该依赖项时,它说包“lazyeval”不可用(对于 R 版本 3.0.2)
-
您可以更新到最新的 R 版本然后安装
-
我再次打开了这个 - 添加了新的数据来重现。我还诊断出问题出在与 group by (session_id) 无关,而是在整个集合中进行排名
-
您好像完全删除了原来的问题?
标签: r group-by aggregate plyr dplyr