2017-09-27 43 views
0

列索引組我遇到的情況,我在一個變量得到列索引和我有GROUP BY和變量如何通過在dplyr

col_index <- which(sapply(dataframe, function(x) any(x == "Area of Maintenance"))) 

> col_index 
    X__7 
    8 

現在我的希望將總結col_index值如下

df%>% 
group_by(df[col_index]) %>% 
summarise(count = n()) %>% 
as.data.frame() 

它給我下面的錯誤。

Error in mutate_impl(.data, dots) : 
Evaluation error: Column index must be at most 1 if positive, not 8. 

col_index具有動態值。我該怎麼做r?

+3

的幫助試試'group_by_at(col_index)'。 – mt1022

回答

2

您可以通過搭配使用group_by_if給定函數的所有列組:

df %>% 
    group_by_if(function(x) any(x == "Area of Maintenance")) %>% 
    summarise(count = n()) %>% 
    as.data.frame() 
+0

感謝您的回答,但如果我想用'col_index'來做這件事呢?我們可以這樣做嗎? – Neil