在data.table中创建一个变量,变量保存在其他变量中[重复]

Posted

技术标签:

【中文标题】在data.table中创建一个变量,变量保存在其他变量中[重复]【英文标题】:Create a variable in data.table with variable saved in other variable [duplicate] 【发布时间】:2022-01-14 04:24:39 【问题描述】:

我有一个非常简单的问题。假设我有数据表:

dt = data.table(a = rnorm(10), b = rnrom(10))

我想在dt 中创建一个新变量,例如c = b * 2。但我想从存储在字符串中的其他变量中获取变量名bc。示例

newvar = "c"
var = "b"

我可以很容易地做到这一点,而无需使用这样的数据表:

setDF(dt)
dt[newvar] = dt[var] * 2

我想知道,如何在 data.table 包语法中做同样的事情?

【问题讨论】:

我不确定我是否理解你想要的,但这就是你要找的:library(data.table) dt = data.table(a = rnorm(10), b = rnorm(10)) dt$c 【参考方案1】:

我们可以使用get

dt[, (newvar) := get(var) * 2 ]

【讨论】:

以上是关于在data.table中创建一个变量,变量保存在其他变量中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用数据表对子集执行操作

使用聚合操作时如何避免在 data.table 中创建重复项

如何从包含逗号分隔条目的变量中创建(不同的)值列表?

如何在存储过程中创建字符串列表变量以及如何在另一个查询中使用它?

如何在公共方法中创建私有变量

在 flexdashboard 闪亮小部件中创建一个依赖于另一个输入变量的输入变量