r - 如何在 dplyr mutate 中使用由列遮蔽的变量

标签 r dplyr tidyverse

这个问题在这里已经有了答案:





How to refer to variable instead of column with dplyr

(1 个回答)


2年前关闭。




给定一个数据框 df和一个局部变量 z ,我想设置列ydf等于 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/

相关文章:

r - 使用带有 dplyr 管道语法的 base 中的 table() 函数?

r - 查找长度等于或大于 n 的最新 TRUE 序列

R - (Tidyverse) 根据列整数将一行变成多行

r - Shiny 仪表板中的条件面板

r - 使用 dplyr 包 R 改变 data.frame 或 tibble 中的选定列

R:在删除最小值和最大值后计算每行中选定列的 SD

r - dplyr 和 tidyr - 使用因子一次计算大量线性模型

r - 使用purrr影响列表中每个数据框的单个列

R:按名称组合嵌套列表元素

xml - 将 R2HTML 与 rvest/xml2 一起使用