此代码曾用于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
版本&gt; = 0.7.0
hw1 %>% mutate_at(starts_with("HW"),repl_1_NA)
答案 0 :(得分:40)
使用starts_with()
作为mutate_at
的列选择器时,我们现在需要将其包装在vars()
中,因此最终的代码行应该是
hw1 %>% mutate_at(vars(starts_with("HW")),repl_1_NA)
我通过查看this question的解决方案来解决这个问题,并且我认为我会将其作为其他人的路标发布...