当使用与列名相同的dplyr和variablenames时,如何区分这两者?
test <- c(1,2)
df <- data.frame(test = c(3,4))
df %>% mutate(test = test) # does not change anything
我也试过像
这样的东西test <- c(1,2)
df <- data.frame(test = c(3,4))
df %>% mutate(test = interp(~x, x = as.name("test")))
强制使用(全局)变量&#34; test&#34;相反,遗憾的是没有成功。
我该如何处理这种情况?
编辑: 具有非非全局变量时,即函数参数
foo <- function(test) {
df <- data.frame(test = c(3,4))
env <- environment()
df %>% mutate(test = env[["test"]])
}
foo(1:2)
技巧
答案 0 :(得分:1)
我们可以使用.GlobalEnv
来提取对象
df %>%
mutate(test = .GlobalEnv[["test"]])
# test
#1 1
#2 2