当分数相等时,是否有 R 函数可与 top_n 一起使用

Is there an R function to use with top_n when scores are equal

我正在对毕业成绩和大学成绩进行关联。我使用 top_n 来清理重考的学校分数,但有时差的候选人在重考时得到相同的分数。如何消除这些重复项?

  Studno  Math
     <int> <int>
 1 2105234    53
 2 2126745    10
 3 2126745    10
 4 2110897    41
 5 2344567    55
 6 2213467    63
 7 2314521    67
 8 2314521    40
 9 2123456    18
10 2123456    45

   duppymat1 %>% group_by ("Studno") %>% top_n(1,"Math")

这消除了分数不同的两个重复值,但是如何编码以消除两个相同的值之一?

我倾向于使用row_number() == 1

例如:

require(tidyverse)

df <- tribble(
  ~ Studno,  ~ Math,
2105234,    53,
2126745,    10,
2126745,    10,
2110897,    41,
2344567,    55,
2213467,    63,
2314521,    67,
2314521,    40,
2123456,    18,
2123456,    45
)


df %>% group_by (Studno) %>% top_n(1,Math)

df %>% group_by(Studno) %>% filter(row_number(desc(Math))==1)

给予

# A tibble: 7 x 2
# Groups:   Studno [7]
   Studno  Math
    <dbl> <dbl>
1 2105234    53
2 2126745    10
3 2110897    41
4 2344567    55
5 2213467    63
6 2314521    67
7 2123456    45