此代码无法在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中是不可能的吗?
答案 0 :(得分:8)
好吧,add_column
似乎来自tibble
而不是dplyr
,但它确实使用了新的整洁eval语法。你可以使用
add_column(df, !!(mycols[2]) := 7)
请注意!!
和:=
。 :=
允许您使用变量作为参数名称,!!
将表达式扩展为字符串。