带有变量列名的tibble中的add_column

时间:2017-08-17 17:26:12

标签: r dplyr tibble

此代码无法在tibble中添加列:

  library(tidyverse)
  df <- data.frame("Oranges" = 5)
  mycols <- c("Apples", "Bananas", "Oranges")
  add_column(df, mycols[[2]] = 7)

我收到错误消息:

  Error: unexpected '=' in "add_column(df, mycols[[2]] ="

但是这段代码有效:

  add_column(df, "Bananas" = 7)

为什么?

我不知道&#39; mycols&#39;提前时间。这就是为什么我编写我的代码作为变量的原因。这在dplry中是不可能的吗?

1 个答案:

答案 0 :(得分:8)

好吧,add_column似乎来自tibble而不是dplyr,但它确实使用了新的整洁eval语法。你可以使用

add_column(df, !!(mycols[2]) := 7)

请注意!!:=:=允许您使用变量作为参数名称,!!将表达式扩展为字符串。