2017-06-13 23 views
4

我正在嘗試做一些非常簡單的操作,但卻無法找出指定的正確方法。我只是想從mutate_at中排除一些命名的列。如果我指定位置,它工作正常,但我不想硬編碼位置。在dplyr的mutate_at中排除按列名稱的列

例如,我想輸出與此相同:

mtcars %>% mutate_at(-c(1, 2), max) 

但是,通過指定mpgcyl列名。

我嘗試了很多事情,包括:

mtcars %>% mutate_at(-c('mpg', 'cyl'), max) 

有沒有辦法在mutate_at名和排除工作?

回答

12

您可以使用vars指定的列,其工作方式相同select(),並允許您使用-排除列:

mtcars %>% mutate_at(vars(-mpg, -cyl), max) 
+1

有趣。這是有效的,我必須在對數據進行處理之前將任何分組取消組合()。謝謝! – Gopala

0

一種選擇是通過內部one_of

mtcars %>% 
    mutate_at(vars(-one_of("mpg", "cyl")), max)