Sometimes I accidentally create a variable with the same name with column in data.frameand later use the variable in dplyr. the name is often treated as a column name rather than a variable name. See the following example:
library(dplyr)
packageVersion("dplyr")
mtcars %>% filter(mpg == 21)
mpg.val <- 21
mtcars %>% filter(mpg == mpg.val)
mpg <- 21
mtcars %>% filter(mpg == mpg)
In the third case, how to tell the filter that the second mpgis the name of the variable, not the name of the column, and get the results as the first two cases? (In addition, I am using dplyr 0.6.0.)
getresults created by reprex:
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
#> ...
Adding work environment:
mtcars %>% filter(mpg == get("mpg", .GlobalEnv))
# 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
source
share