mutate_at,dplyr version> =

时间:2017-06-25 21:19:12

标签: r dplyr

此代码曾用于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)

1 个答案:

答案 0 :(得分:40)

使用starts_with()作为mutate_at的列选择器时,我们现在需要将其包装在vars()中,因此最终的代码行应该是

hw1 %>% mutate_at(vars(starts_with("HW")),repl_1_NA)

我通过查看this question的解决方案来解决这个问题,并且我认为我会将其作为其他人的路标发布...