2017-02-08 5 views
0

Hier ist mein Beispiel:dplyr, Gruppe und mutieren - falsche Ergebnis Größe

col_1 <- c('a','a','a','b','b') 
col_4 <- c('h','h','k','t','t') 
col_2 <- c('2015-10-10','2016-10-10','2015-10-10','2016-10-10','2016-10-10') 
col_3 <- c(1,2,3,445,56) 
test_df <- data.frame(col_1,col_2, col_3, col_4) 


df_result <- test_df %>% group_by(.dots = c('col_1', 'col_4')) %>% mutate(result_col = max(col_3)) 

Es erzeugt die folgende Fehlermeldung:

Error in mutate_impl(.data, dots) : 
    wrong result size (2), expected 5 or 1 

Können Sie mir helfen, zu verstehen, was ich tue, falsch ?

+0

Verwenden Sie nicht-quoted Spaltennamen in 'group_by' – user127649

+0

@ user127649 Ich habe Ihren Vorschlag versucht, es hat nicht funktioniert – user1700890

+1

Sorry, nicht genug Details. Wie ist das: 'group_by (col_1, col_4)', dh entfernen Sie die '.dots = (c())' – user127649

Antwort

2

verwenden:

df_result <- test_df %>% group_by(col_1, col_4) %>% mutate(result_col = max(col_3)) 
1

Wenn aus irgendeinem Grund, möchten Sie zitierte Spaltennamen passieren, werden Sie group_by_ statt group_by verwenden. Hinweis _ am Ende der Funktion.

Sie können alle dplyr Verben auf ähnliche Weise verwenden.

Verwandte Themen