我想从数据框中提取变量名,并使用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])
答案 0 :(得分:2)
这可以通过分配(:=
)和评估(!!
)分配的时间来完成
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