提取的变量名称dyplyr :: mutate

时间:2018-08-14 13:16:50

标签: 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])

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