这段代码无法在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)

为什么?

我不知道“mycols”的值(value)。这就是为什么我将代码编写为变量的原因。在dplry中不可能吗?

最佳答案

您可以使用以下两个选项之一:

add_column(df, "{mycols[2]}" := 7)
add_column(df, !!(mycols[2]) := 7)
第一种是现在更受欢迎的样式,您可以在其中使用glue字符串创建参数名称。否则,您可以使用!!注入(inject)参数名称。两者都要求:=允许您使用变量作为参数名称(您不能使用调用函数时通常使用的=进行操作)。

关于r - 带有可变列名称的tibble中的add_column,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45741498/

10-12 16:40