r语言 - add_column 在 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)

为什么?

我提前不知道"mycols"的价值。 这就是为什么我编写代码让它成为一个变量。 这在 dplry 中是不可能的吗?

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

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

第一个是现在更首选的样式,您可以在其中使用glue字符串来创建参数名称。否则,可以使用!!注入参数名称。两者都需要:=允许您使用变量作为参数名称(您无法使用调用函数时通常使用的=(。

最新更新