我现正运用以下功能,为每个选区寻找最受欢迎的政党:
election <- elec_df %>% dplyr::filter(Election == 2017 & WKR_NR <= 299) #%>%
dplyr::group_by(WKR_NR, Partei) %>%
summarise(
Anteil_Stimmen = Stimmen/Total_Erststimmen,
Max_Partei = max(Anteil_Stimmen, na.rm=TRUE)) %>%
dplyr::filter(Max_Partei == max(Max_Partei, na.rm=TRUE))
该代码在2005、2009和2013年过滤时运行良好,但未能对2017年进行分组和汇总。
因此,我假定这个问题必须与2017年特有的缔约方变量有关。但是,我找不到错误。
数据集可以找到这里
任何暗示都是非常感谢的。谢谢您:)
发布于 2022-06-13 12:13:06
更新7/11/22:
如果按规定从链接下载原始数据,读入R(即使用read.csv
、readr::read_csv
或data.table::fread
)并分配给df
,则可以使用以下整齐的管道来获得每次选举的299行:
df %>%
rename(WKR_NR = Wahlkreis) %>%
filter(WKR_NR<=299) %>%
group_by(Election, WKR_NR, Partei) %>%
summarise(Anteil_Stimmen = Stimmen/Total_Erststimmen, .groups="drop_last") %>%
slice_max(Anteil_Stimmen)
如果要按选举(即按年份)拆分,可以将其添加到管道的末尾:
... %>%
group_by(Election) %>%
group_split()
输出:
[[1]]
# A tibble: 299 x 4
Election WKR_NR Partei Anteil_Stimmen
<int> <int> <chr> <dbl>
1 2002 1 SPD 0.487
2 2002 2 CDU 0.443
3 2002 3 SPD 0.458
4 2002 4 SPD 0.481
5 2002 5 SPD 0.537
6 2002 6 SPD 0.479
7 2002 7 SPD 0.464
8 2002 8 SPD 0.467
9 2002 9 SPD 0.485
10 2002 10 SPD 0.461
# ... with 289 more rows
[[2]]
# A tibble: 299 x 4
Election WKR_NR Partei Anteil_Stimmen
<int> <int> <chr> <dbl>
1 2005 1 SPD 0.442
2 2005 2 CDU 0.479
3 2005 3 CDU 0.449
4 2005 4 CDU 0.441
5 2005 5 SPD 0.507
6 2005 6 SPD 0.470
7 2005 7 CDU 0.442
8 2005 8 CDU 0.439
9 2005 9 SPD 0.446
10 2005 10 CDU 0.444
# ... with 289 more rows
[[3]]
# A tibble: 299 x 4
Election WKR_NR Partei Anteil_Stimmen
<int> <int> <chr> <dbl>
1 2009 1 CDU 0.388
2 2009 2 CDU 0.432
3 2009 3 CDU 0.398
4 2009 4 CDU 0.402
5 2009 5 SPD 0.383
6 2009 6 CDU 0.386
7 2009 7 CDU 0.408
8 2009 8 CDU 0.398
9 2009 9 CDU 0.386
10 2009 10 CDU 0.399
# ... with 289 more rows
[[4]]
# A tibble: 299 x 4
Election WKR_NR Partei Anteil_Stimmen
<int> <int> <chr> <dbl>
1 2013 1 CDU 0.425
2 2013 2 CDU 0.498
3 2013 3 CDU 0.454
4 2013 4 CDU 0.452
5 2013 5 SPD 0.430
6 2013 6 CDU 0.437
7 2013 7 CDU 0.454
8 2013 8 CDU 0.454
9 2013 9 CDU 0.459
10 2013 10 CDU 0.452
# ... with 289 more rows
[[5]]
# A tibble: 299 x 4
Election WKR_NR Partei Anteil_Stimmen
<int> <int> <chr> <dbl>
1 2017 1 CDU 0.400
2 2017 2 CDU 0.451
3 2017 3 CDU 0.419
4 2017 4 CDU 0.427
5 2017 5 CDU 0.383
6 2017 6 CDU 0.407
7 2017 7 CDU 0.397
8 2017 8 CDU 0.411
9 2017 9 CSU 0.442
10 2017 10 CDU 0.395
# ... with 289 more rows
https://stackoverflow.com/questions/72602419
复制相似问题