2
我有一个看起来像这样的数据:使用带有否定选择佣工如mutate_at()(未one_of())
library(dplyr)
set.seed(123)
df <- data_frame(X1 = rep(LETTERS[1:4], 6),
X2 = rep(1:2, 12),
ref = sample(1:50, 24),
sampl1 = sample(1:50, 24),
var2 = sample(1:50, 24),
meas3 = sample(1:50, 24))
随着dplyr
的舀我可以编辑和一次例如,创建多个列的命令:
df %>% mutate_if(is.numeric, funs(new = . - ref))
,如果我想这样做,只列的子集,我可以使用select
佣工像这样:
df %>% mutate_at(vars(one_of(c("X2", "ref"))), funs(new = . - ref))
但是在我的情况我知道,我的数据总是包含列X1
,X2
和ref
但想子集这样的数据变异仅在非X1
,X2
和ref
列。这些其他列的数量和名称都是可变的,但始终是数字。我想我可以做这样的事情:
df %>% mutate_at(vars(!one_of(c("X1", "X2", "ref"))), funs(new = . - ref))
也许
df %>% mutate_at(vars(one_of(!names %in% c("X1", "X2", "ref"))), funs(new = . - ref))
但无论工作。你如何做阴性dplyr select
帮手?