这个问题在这里已经有了答案:
How to refer to variable instead of column with dplyr
(1 个回答)
2年前关闭。
给定一个数据框 df
和一个局部变量 z
,我想设置列y
的 df
等于 z
:
df <- data.frame(x=1:5)
z <- 5
df %>%
mutate(y = z)
但是,如果名为
z
的列已存在于 df
,本套y
等于该列而不是等于局部变量的值:df <- data.frame(x=1:5, z=4)
z <- 5
df %>%
mutate(y = z)
无论
df
中存在哪些列,我如何确保将其设置为局部变量?(我知道我可以重命名/删除有问题的列,但我正在处理其列在运行前未知的数据。)
最佳答案
一个选项是在全局环境而不是本地环境中检查对象
library(dplyr)
df %>%
mutate(z = .GlobalEnv$z)
关于r - 如何在 dplyr mutate 中使用由列遮蔽的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875470/