2017-02-21 6 views
0

Я пытаюсь создать новый столбец в моем наборе данных выборов 2016, который показывает, проиграл ли кандидат или выиграл графство.Возвращение нескольких переменных с помощью Group By и суммирование с помощью Dplyr

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

Этот код возвращает максимум голосов. Могу ли я также вернуть переменную-кандидат? Добавление:

select(county, fraction_votes, candidate) 

Не возвращает ничего другого.

Я попытаюсь создать переменную «result», используя мутацию для последней строки кода. Я думал, что применимая семья может быть другим способом решить эту проблему.

Благодаря

+2

Есть ли столбец под названием 'кандидат'? Вы должны предоставить [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Вы описываете, как вы хотите обобщить 'fraction_votes', но есть ли только один кандидат на графство? Как вы хотите подытожить кандидата? – MrFlick

ответ

1

Если candidate является поле кадра данных Democrat, самый простой способ это сделать несколько группировку:

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

Я довольно уверен, что есть более емким способ сделать это , но ниже предоставит вам выигрышный флаг голосования как 1. Затем вы просто замените NA на 0 (второй блок кода)

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

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