我有一个数据框,其中包含有关市政当局地方选举的信息,我想在我的数据集中仅保留与市政当局投票最多的两名候选人有关的信息。
我的数据框是使用以下信息创建的:
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/