【问题标题】:data.table How to copy a column programmatically? [duplicate]data.table 如何以编程方式复制列? [复制]
【发布时间】:2021-04-12 03:06:36
【问题描述】:
library(data.table)
irisDT = as.data.table(iris)

我正在寻找这个:

irisDT[, NewCol:= Sepal.Length]

但随后以编程方式使用var = "Sepal.Length"。

我希望是这样的:

var = "Sepal.Length"
irisDT[, NewCol := eval(var)]

这个

var = "Sepal.Length"
irisDT$NewCol = irisDT[[var]] 

有效,但 irisDT 在内部被复制,这是不可取的。

欢迎任何帮助:-)

【问题讨论】:

  • 使用 get 代替 eval。

标签: r data.table


【解决方案1】:

这对你来说是一个选择吗?

irisDT[, NewCol := get(..var)]

您可以使用get(var),只要您的data.table 中没有称为var 的变量,因此以编程方式使用..var 更安全(另请参阅here)。

【讨论】:

  • 太棒了!正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2011-08-12
  • 2011-02-06
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多