Использование функций нескольких столбцов в вызове 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 ()