一个代码,试图在每年、州和地区找到选举的获胜者,只有那些以 5% 的优势获胜的人

A code trying to find winners of an election in each year, state and district only those who won by a margin of 5%

提问人:nesehorn 提问时间:12/9/2022 更新时间:12/9/2022 访问量:28

问:

看起来这个代码试图找到每年、州和地区的选举获胜者,只包括那些以 5% 或更少的优势获胜的人。

我试图创建一个代码,在每年、州和地区的选举中找到获胜者,只包括那些以 5% 或更少的优势获胜的人。我创建了以下代码,但反复出现错误,我似乎不明白为什么。有人可以帮我了解我做错了什么吗?:)

tab_relevant %>%
  group_by(year, state, district) %>%
  {
    if (tab_relevant$candidatevotes/tab_relevant$totalvotes <= 0.05) {
      slice_max(tab_relevant$candidatevotes)
    } else {
      return(FALSE)
    }
  } -> winner

r if-语句 分组依据 切片

评论

1赞 r2evans 12/9/2022
欢迎来到 SO, nesehorn!关于 SO 的问题(尤其是在 R 中)如果它们是可重复的和独立的,那么它们会做得更好。我的意思是包括示例代表性数据(可能通过或以编程方式构建数据(例如,),可能是随机的),也许是实际输出(带有逐字错误/警告)与预期输出。参考文献:stackoverflow.com/q/5963269最小可重复示例stackoverflow.com/tags/r/infodput(head(tab_relevant))data.frame(...)
0赞 stefan 12/9/2022
第一个问题很可能是您的条件是一个向量,在 R >= 4.2.0 上会导致错误。第二个也不起作用,因为slice_max期望 DataFrame 作为其第一个参数,而不是向量。第三,安无事可。最后,未经测试,但恕我直言,您可以通过首先过滤边距 <= .05 然后使用tab_relevant$candidatevotes/tab_relevant$totalvotes <= 0.05the condition has length > 1slice_max(tab_relevant$candidatevotes)ifreturnslice_max

答: 暂无答案