Я должен преобразовать следующий код:
labels = 'x'
dataX <- data.frame(x = colors())
special <- sample(colors(),5)
dataX <- dataX %>% mutate("names2" := dplyr::case_when(UQ(sym(labels)) %in% special ~ UQ(sym(labels))))
В некоторый код, который будет работать без :=
, так как это дает мне ПРИМЕЧАНИЕ при запуске проверки пакета.
Поэтому я пытаюсь использовать вместо этого mutate_at, но не могу объединить его с case_when:
dataX <- dataX %>% mutate_at(c("names3" = labels) , funs(dplyr::case_when(.) %in% special ~ .))
, что не с:
Error in mutate_impl(.data, dots) :
Column `names3` is of unsupported type quoted call
Поэтому мой вопрос.
Пока лучшее, что я придумал, это:
testx <- function(x, special){tmp <- x %in% special; x[!tmp] <- NA; as.character(x)}
dataX <- dataX %>% mutate_at(c("names4" = labels) , funs(testx(., special)))