首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >group_by &总结5种数据格式中的4种

group_by &总结5种数据格式中的4种
EN

Stack Overflow用户
提问于 2022-06-13 11:56:49
回答 1查看 26关注 0票数 0

我现正运用以下功能,为每个选区寻找最受欢迎的政党:

代码语言:javascript
运行
复制
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年进行分组和汇总。

2013年工作情况良好

year2017失败

因此,我假定这个问题必须与2017年特有的缔约方变量有关。但是,我找不到错误。

数据集可以找到这里

任何暗示都是非常感谢的。谢谢您:)

EN

回答 1

Stack Overflow用户

发布于 2022-06-13 12:13:06

更新7/11/22:

如果按规定从链接下载原始数据,读入R(即使用read.csvreadr::read_csvdata.table::fread)并分配给df,则可以使用以下整齐的管道来获得每次选举的299行:

代码语言:javascript
运行
复制
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)

如果要按选举(即按年份)拆分,可以将其添加到管道的末尾:

代码语言:javascript
运行
复制
  ... %>%
  group_by(Election) %>% 
  group_split()

输出:

代码语言:javascript
运行
复制
[[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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72602419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档