r - 提取的变量名 dplyr::mutate
问题描述
我想从数据框中提取变量名并使用 dplyr::mutate 创建一个新变量。我必须写什么才能接受通过“md$meta[1]”提供的变量名?我认为这是直截了当的,但我无法在网上找到答案。非常感谢任何帮助!
假数据
iris <- head(iris)
meta <- c("a", "b", "c")
data <- c(1:3)
md <- data.frame(meta, data)
rm(meta, data)
期望的输出
iris <- iris %>%
mutate("a" = md$data[1])
代码尝试
iris <- iris %>%
mutate(paste0(md$meta[1]) = md$data[1])
解决方案
这可以通过赋值 ( :=
) 和评估 ( !!
) 赋值的 lhs 来完成
iris %>%
mutate(!! paste0(md$meta[1]) := md$data[1])
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species a
#1 5.1 3.5 1.4 0.2 setosa 1
#2 4.9 3.0 1.4 0.2 setosa 1
#3 4.7 3.2 1.3 0.2 setosa 1
#4 4.6 3.1 1.5 0.2 setosa 1
#5 5.0 3.6 1.4 0.2 setosa 1
#6 5.4 3.9 1.7 0.4 setosa 1
推荐阅读
- ruby-on-rails - 如何修复共享相同 ID 的 Rails Active Storage blob
- python-3.x - 在创建具有已知不良数据的数据帧时强制执行数据类型
- python - 我不明白为什么范围函数增量参数适用于切片运算符
- .net - 我的 .Net 代码在命名管道中出现 40 错误,但 Excel 连接正常
- java - 继承中的方法调用有问题
- php - WooCommerce 在快速编辑时保存自定义产品字段
- bash - 计算机启动后 Anacrontab 未运行计划的 bash 脚本
- java - 为什么 return 不尊重 finally 块中变量的值?
- python-3.x - 如何计算分段线性斜率
- python - 抑制 GtkButton:image-spacing 的 Python matplotlib 弃用警告