R根据两列

时间:2017-08-02 07:58:18

标签: r select dataframe highest

道歉,如果这是重复请告诉我,我很乐意删除。

我正在尝试为另一列的不同值选择四个最高值。

数据集:

   A   B   COUNT
1  1   2     2
2  1   3     6
3  1   4     3
4  1   5     9
5  1   6     2
6  1   7     7
7  1   8     0
8  1   9     5
9  1   10    2
10 1   11    7
11 2   1     5
12 2   3     1
13 2   4     8
14 2   5     9
15 2   6     5
16 2   7     2
17 2   8     2
18 2   9     4
19 3   1     7
20 3   2     5
21 3   4     2
22 3   5     8
23 3   6     6
24 3   7     1
25 3   8     9
26 3   9     5
27 4   1     8
28 4   2     1
29 4   3     1
30 4   5     3
31 4   6     9

例如,我想在A = 1(9,7,7,6)时选择四个最高计数,然后在A = 2(9,8,5,5)时选择等等...

我还希望相应的B列值在每个计数旁边,所以当A = 1时,我想要的输出将是这样的:

B   A   Count
5   1     9
7   1     7
11  1     7
3   1     6

我已经在“选择最高价值”上找到了各种答案,但很难在其他专栏上找到一个示例条件。

非常感谢

2 个答案:

答案 0 :(得分:2)

我们可以做到

df1 %>%
     group_by(A) %>% 
     arrange(desc(COUNT)) %>%
     filter(row_number() <5)

答案 1 :(得分:2)

library(dplyr)
data %>% group_by(A) %>% 
  arrange(A, desc(COUNT)) %>% 
  slice(1:4)