Je voudrais utiliser dplyr de l' mutate_at
fonction à appliquer une fonction à plusieurs colonnes dans un dataframe, où la fonction des entrées de la colonne à laquelle elle est directement appliquée, ainsi qu'une autre colonne d'un dataframe.
À titre d'exemple concret, j'aurais l'air de la mutation de l'suivantes dataframe
# Example input dataframe
df <- data_frame(x = c(TRUE, TRUE, FALSE),
y = c("Hello", "Hola", "Ciao"),
z = c("World", "ao", "HaOlam")
)
avec un mutate_at
appel qui ressemble à ceci
df %>%
mutate_at(.vars = vars(y, z),
.funs = ifelse(x, ., NA)
)
de retour d'un dataframe qui ressemble à quelque chose comme ceci
# Desired output dataframe
df2 <- data_frame(x = c(TRUE, TRUE, FALSE),
y_1 = c("Hello", "Hola", NA),
z_1 = c("World", "ao", NA)
)
L'souhaité mutate_at
appel serait semblable à l'issue d'un appel d' mutate
:
df %>%
mutate(y_1 = ifelse(x, y, NA),
z_1 = ifelse(x, z, NA)
)
Je sais que cela peut être fait dans la base de R de plusieurs façons, mais je tiens tout particulièrement à atteindre cet objectif en utilisant dplyr de l' mutate_at
fonction pour des raisons de lisibilité, l'interfaçage avec les bases de données, etc.
Ci-dessous sont certaines des questions similaires posées sur stackoverflow qui ne pas répondre à la question que j'ai posée ici:
ajout de plusieurs colonnes dans une dplyr muter appel
dplyr::muter pour ajouter plusieurs valeurs
L'utilisation de la colonne à l'intérieur de fonction sum() à l'aide de dplyr de muter() la fonction