使用Group By返回多个变量并使用Dplyr汇总

时间:2017-02-21 20:27:05

标签: r dplyr

我正在尝试在2016年的选举数据集中创建一个新列,显示候选人是否输了或赢了一个县。

 Democrat %>%
  group_by(county) %>%
  summarise(winningvote = max(fraction_votes))

此代码仅返回最大投票。我还可以返回候选变量吗?添加:

 select(county, fraction_votes, candidate)

不会返回任何不同的内容。

我将尝试使用mutate为代码的最后一行创建一个“结果”变量。我认为申请家庭可能是解决这个问题的另一种方式。

由于

2 个答案:

答案 0 :(得分:1)

如果candidateDemocrat数据框的字段,最简单的方法是进行多次分组:

Democrat %>%
  group_by(county, candidate) %>%
  summarise(winningvote = max(fraction_votes))

答案 1 :(得分:0)

我非常有信心有一种更简洁的方法可以做到这一点,但是下面会为你提供一个赢得投票标志为1.然后你只需用0替换NA(第二块代码)

left_join(Democrat, (Democrat %>%
  group_by(county) %>%
  summarise(fraction_votes = max(fraction_votes)) %>%
  mutate(Winning_Vote = 1)))

Democrat[is.na(Democrat)] <- 0