2017-02-08 86 views
0

這是我的例子:dplyr,按組和發生變異 - 錯誤的結果大小

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)) 

它產生以下錯誤消息:

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

你能幫我明白我在做什麼錯?

+0

在'group_by'中使用未加引號的列名稱 – user127649

+0

@ user127649我試過了你的建議,它沒有工作 – user1700890

+1

對不起,沒有足夠的細節。這是怎麼回事:'group_by(col_1,col_4)',即刪除'.dots =(c())' – user127649

回答

2

使用此:

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

如果由於某種原因,你想通過引用的列名,你將不得不使用group_by_,而不是group_by。在功能結束時注意_

您可以以類似的方式使用所有dplyr動詞。