【发布时间】:2015-02-10 11:07:49
【问题描述】:
我想在对列进行操作时使用变量来指定列的名称。
举个例子,我可能有一个名为Set1 的data.table,我想在其中将x 列的类更改为数字。我可能会这样做
Set1New=transform(Set1,x=as.numeric(x))
这可行,但现在我不想硬编码列名,而是使用变量,我们称之为Y(之前定义为Y="x"。
当我使用时,如何告诉 R 使用变量的内容而不是寻找列 Y
Set1New=transform(Set1,Y=as.numeric(Y))
我知道,例如setkey 和 setkeyv 存在,setkeyv 解决了这个问题。是否有类似的转换解决方案? 或者,我更想要的是,有没有通用的解决方案,使用变量的内容而不是变量名?
【问题讨论】:
-
如果是data.table,那么
Set1[, x:=as.numeric(x)] -
或者你可以使用
evalSet1[,(Y) := as.numeric(eval(as.name(Y)))] -
@DavidArenburg 我一定会这样做的!
-
也看看here
标签: r data.table