我有一个数据框,其中包含有关市政当局地方选举的信息,我想在我的数据集中仅保留与市政当局投票最多的两名候选人有关的信息。

我的数据框是使用以下信息创建的:

Candidates <- c('Liza S.', 'John R.', 'Peter F.', 'Ignacio R.', 'Hanna F.', 'Anthony E.', 'Andrew W.')`
Municipality <- ('A', 'A', 'A', 'B', 'B', 'B', 'B')
Votes <- c(100, 120, 140, 110, 335, 225, 400)
data <- data.frame(Candidates, Municipality, Votes)

看起来像这样:
Candidates     Municipality     Votes
Liza S.              A           100
John R.              A           120
Peter F.             A           140
Ignacio R.           B           110
Hanna F.             B           335
Anthony E.           B           225
Andrew W.            B           400

我希望我的数据框如下所示:
Candidates     Municipality     Votes
    John R.              A           120
    Peter F              A           140
    Hanna F.             B           335
    Andrew W.            B           400

关于如何实现此目标的任何想法?

最佳答案

您可以为此使用dplyr包:

library(dplyr)

    data %>%
       group_by(Municipality) %>%
       top_n(n = 2, wt = Votes)


# A tibble: 4 x 3
# Groups:   Municipality [2]
  Candidates Municipality Votes
  <fct>      <fct>        <dbl>
1 John R.    A              120
2 Peter F.   A              140
3 Hanna F.   B              335
4 Andrew W.  B              400

关于r - 通过列阈值对数据框进行子设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59696638/

10-12 22:38
查看更多