Usando funções de várias colunas em uma chamada dplyr mutate_at
Eu gostaria de usar dplyr'smutate_at
function para aplicar uma função a várias colunas em um quadro de dados, em que a função insere a coluna à qual é aplicada diretamente, bem como outra coluna no quadro de dados.
Como um exemplo concreto, eu procuraria alterar o seguinte quadro de dados
# Example input dataframe
df <- data_frame(x = c(TRUE, TRUE, FALSE),
y = c("Hello", "Hola", "Ciao"),
z = c("World", "ao", "HaOlam")
)
com ummutate_at
chamada que se parece com isso
df %>%
mutate_at(.vars = vars(y, z),
.funs = ifelse(x, ., NA)
)
para retornar um quadro de dados que se parece com isso
# Desired output dataframe
df2 <- data_frame(x = c(TRUE, TRUE, FALSE),
y_1 = c("Hello", "Hola", NA),
z_1 = c("World", "ao", NA)
)
O desejadomutate_at
chamada seria semelhante à seguinte chamada paramutate
:
df %>%
mutate(y_1 = ifelse(x, y, NA),
z_1 = ifelse(x, z, NA)
)
Sei que isso pode ser feito na base R de várias maneiras, mas gostaria especificamente de atingir esse objetivo usando o dplyr'smutate_at
função de legibilidade, interface com bancos de dados, etc.
Abaixo estão algumas perguntas semelhantes feitas no stackoverflow quenão abordar a pergunta que fiz aqui:
adicionando várias colunas em uma chamada mutada dplyr
dplyr :: mutate para adicionar vários valores
Uso da coluna dentro da função sum () usando a função mutate () do dplyr