2015-04-21 63 views
17

所以,如果一個人希望通過行dplyr應用的操作行,可以使用rowwise功能,例如:Applying a function to every row of a table using dplyr?如何停止在dplyr中使用rowwise?

是否有一個unrowwise功能,你可以用它來停止行做操作行?目前,在rowwise刪除行操作後,似乎增加了group_by,例如,

data.frame(a=1:4) %>% rowwise() %>% group_by(a) 
# ... 
# Warning message: 
# Grouping rowwise data frame strips rowwise nature 

這是否意味着,如果你想顯式刪除rowwise應該使用group_by(1)

+4

'ungroup()'是否工作? – r2evans

+0

我回滾了標題編輯,因爲我不清楚'rowwise'是否創建了'grouped_df'。另外,請參閱此相關問題。 https://github.com/hadley/dplyr/pull/553 – Alex

回答

23

正如在評論和其他答案中發現的,正確的做法是使用ungroup()

操作rowwise(df)df的其中一個類別設置爲rowwise_df。我們可以通過檢查代碼here,這樣做具有以下ungroup方法請參見本類的方法:

#' @export 
ungroup.rowwise_df <- function(x) { 
    class(x) <- c("tbl_df", "data.frame") 
    x 
} 

於是我們看到,ungroup沒有嚴格刪除分組結構,相反,它只是刪除了rowwise_df類從加功能rowwise