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

questionAnswers(2)

yourAnswerToTheQuestion