该代码自2017年5月1日起开始生效(dplyr
版本0.5.0)。在dplyr
版本0.7中,它失败并显示Error: Variable context not set
。我找不到在谷歌搜索或在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
版本> = 0.7.0失败hw1 %>% mutate_at(starts_with("HW"),repl_1_NA)
最佳答案
当使用starts_with()
作为mutate_at
的列选择器时,我们现在需要将其包装在vars()
中,因此最终代码行应读取
hw1 %>% mutate_at(vars(starts_with("HW")),repl_1_NA)
我通过查看this question的解决方案来弄清楚这一点,并认为我会将其发布在此处作为其他人的路标...
关于r - mutt_at,dplyr版本> = 0.7的“Variable context not set”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44750737/