J'ai des données qui ressemble à ceci:En utilisant mutate_at() avec des aides de sélection niées par exemple (non 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))
Avec dplyr
« s raflé les commandes que je peux éditer et de créer plusieurs colonnes à la fois, par exemple:
df %>% mutate_if(is.numeric, funs(new = . - ref))
et si je veux le faire à un sous-ensemble de colonnes que je peux utiliser les aides select
comme ceci:
df %>% mutate_at(vars(one_of(c("X2", "ref"))), funs(new = . - ref))
Cependant, dans mon cas, je sais que mes données contiendront toujours les colonnes X1
, X2
et ref
mais aimeraient sous-ensemble des données de manière à muter uniquement les colonnes qui ne sont pas X1
, X2
et ref
. Ces autres colonnes seront variables en nombre et en nom mais toujours numériques. Je pensais que je pouvais faire quelque chose comme ceci:
df %>% mutate_at(vars(!one_of(c("X1", "X2", "ref"))), funs(new = . - ref))
ou peut-être
df %>% mutate_at(vars(one_of(!names %in% c("X1", "X2", "ref"))), funs(new = . - ref))
Mais ni travail. Comment faites-vous négatifs dplyr select
helpers?