Использование функций нескольких столбцов в вызове dplyr mutate_at

Я хотел бы использовать dplyrmutate_at функция для применения функции к нескольким столбцам в кадре данных, где функция вводит столбец, к которому она непосредственно применяется, а также другой столбец в кадре данных.

В качестве конкретного примера, я бы посмотрел, чтобы изменить следующий фрейм данных

# Example input dataframe
df <- data_frame(x = c(TRUE, TRUE, FALSE),
                 y = c("Hello", "Hola", "Ciao"),
                 z = c("World", "ao", "HaOlam")
                 )

сmutate_at вызов, который похож на это

df %>%
mutate_at(.vars = vars(y, z),
          .funs = ifelse(x, ., NA)
          )

вернуть фрейм данных, который выглядит примерно так

# Desired output dataframe
df2 <- data_frame(x = c(TRUE, TRUE, FALSE),
                  y_1 = c("Hello", "Hola", NA),
                  z_1 = c("World", "ao", NA) 
                  )

Желаемыйmutate_at вызов будет похож на следующий вызовmutate:

df %>%
   mutate(y_1 = ifelse(x, y, NA),
          z_1 = ifelse(x, z, NA)
          )

Я знаю, что это может быть сделано в базе R несколькими способами, но я бы специально хотел достичь этой цели, используя dplyrmutate_at функция для удобства чтения, взаимодействия с базами данных и т. д.

Ниже приведены некоторые похожие вопросы, задаваемые на stackoverflow, которыене делайте ответьте на вопрос, который я поставил здесь:

добавление нескольких столбцов в вызов dplyr mutate

dplyr :: mutate для добавления нескольких значений

Использование столбца внутри функции sum () с помощью функции dplyr mutate ()

Ответы на вопрос(2)

Ваш ответ на вопрос