【发布时间】:2017-04-20 16:50:20
【问题描述】:
我对 R 和 dplyr 库比较陌生。如何让函数使用变异列的名称作为函数中的参数传递?
例如,我希望“test”作为变异列的名称,但我得到“y”。我究竟做错了什么?谢谢
library(dplyr)
d <- data.frame(alpha=1:3, beta=4:6)
d
compare_status<-function(x,y){
x %>% mutate(y=ifelse(alpha ==2,"G2","0"))
}
compare_status(d,test)
【问题讨论】:
-
我们昨天刚刚讨论过这个问题。 R 严格不评估对象的名称。有一个新的 dplyr 即将问世,声称能够解决这个问题。如果您愿意,请下载开发版本以进行全面测试。并阅读本教程dplyr.tidyverse.org/articles/programming.html
-
感谢您的指点。是否仅适用于“变异”的函数?
-
不,据我所知,命名位置的所有部分都很严格。
-
可能存在限制以便用户可以写
c(x=1)而不是c("x"=1)。在这一点上,即使 R 大神认为适合评估左侧,他们也不能,因为过去编写的这么多代码取决于输入的值是显示的值。改变太晚了。