给定的数据帧df和一个局部变量z,我想设置列y的df为等于z:
df <- data.frame(x=1:5)
z <- 5
df %>%
mutate(y = z)
Run Code Online (Sandbox Code Playgroud)
但是,如果在中z已经存在一个名为的列,则此列df将y等于该列,而不是等于局部变量的值:
df <- data.frame(x=1:5, z=4)
z <- 5
df %>%
mutate(y = z)
Run Code Online (Sandbox Code Playgroud)
我如何确保将其设置为局部变量,而不管其中的列如何df?
(我知道我可以重命名/删除有问题的列,但是我正在处理其列在运行时之前未知的数据。)
一个选项是在全局环境而不是本地环境中检查对象
library(dplyr)
df %>%
mutate(z = .GlobalEnv$z)
Run Code Online (Sandbox Code Playgroud)