add_column 在 tibble 中,列名可变
add_column in tibble with variable column name
此代码无法在 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
字符串来创建参数名称。否则,您可以使用 !!
来注入参数名称。两者都需要 :=
允许您使用变量作为参数名称(您不能使用通常在调用函数时使用的 =
)。
此代码无法在 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
字符串来创建参数名称。否则,您可以使用 !!
来注入参数名称。两者都需要 :=
允许您使用变量作为参数名称(您不能使用通常在调用函数时使用的 =
)。