Ошибка "Неверный переменный контекст" с mutate_at, версия dplyr >= 0,7
Этот код использовался, начиная с 1 мая 2017 года (dplyr
версия 0.5.0). При dplyr
версии 0.7 он терпит неудачу с Error: Variable context not set
. Я не мог найти решение googling или посмотреть в dplyr NEWS file.
Эта часть в порядке (настройка примера - возможно, будет упрощена...)
xx <- data.frame(stud_number=1:3,HW1=rep(0,3),HW2=c(NA,1,1),junk=rep(NA,3))
repl_1_NA <- function(x) { return(replace(x,which(x==1),NA)) }
hw1 <- xx %>% select(c(stud_number,starts_with("HW")))
Теперь попробуйте использовать mutate_at()
: сбой с dplyr
version >= 0.7.0
hw1 %>% mutate_at(starts_with("HW"),repl_1_NA)
Ответы
Ответ 1
При использовании starts_with()
в качестве селектора столбцов для mutate_at
нам нужно обернуть его в vars()
, поэтому окончательная строка кода должна читать
hw1 %>% mutate_at(vars(starts_with("HW")),repl_1_NA)
Я понял это, посмотрев на решение этого вопроса и подумал, что отправлю его здесь в качестве указателя для других...