【发布时间】:2019-12-02 04:27:30
【问题描述】:
我正在尝试在 r 中使用 := 运算符来分配我在函数中提供的名称的变量。
为了在分配多个变量时保持代码可读性,我想使用 :=(paste0("var",i)=3) 构造。但它的行为似乎与 paste0("var",i):=3 构造不同。
这是 := 的预期行为还是我遗漏了什么?
我可以做些什么来使:= 构造工作吗?
例子:
dt<-data.table(var1=1:10)
#This works fine:
dt[,paste0("var",1):=3]
#But this throws an error:
dt[,`:=`(paste0("var",1)=3)]
Error: unexpected '=' in "dt[,`:=`(paste0("var",1)="
【问题讨论】:
-
你在寻找
dt[,:=(paste0("var",1), 3)] -
哇!这样可行!谢谢!现在我特别困惑!它在做什么?多个变量的语法是什么?
-
你可以看到
help(":=")并通过egs工作
标签: r syntax data.table operator-keyword