为什么在没有指定环境的情况下使用get访问全局env中的变量显然适用于dplyr 0.5.0但不适用于0.6.0?

时间:2017-06-01 08:09:55

标签: r dplyr

我问a question有关在全局环境中访问变量的问题,其名称与dplyr函数中的列名相同。我收到的一个解决方案是使用get。然而,出现了新的问题。如果没有明确指定环境,结果会有所不同(请参阅下文),有人可以解释原因吗?

# dplyr 0.6.0
mpg <- 21
mtcars %>% filter(mpg == get("mpg"))
#>     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#> 1  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
#> 2  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
#> 3  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
#> 4  21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
#> ...

# dplyr 0.5.0
mtcars %>% filter(mpg == get("mpg"))
#  mpg cyl disp  hp drat    wt  qsec vs am gear carb
#1  21   6  160 110  3.9 2.620 16.46  0  1    4    4
#2  21   6  160 110  3.9 2.875 17.02  0  1    4    4

0 个答案:

没有答案