data.table
是一个很棒的 R 包,我在我正在开发的库中使用它。到目前为止,一切进展顺利,除了一个并发症。使用保存在变量中的名称来引用列似乎要困难得多(与传统的数据框相比)data.table
(对于数据框来说,例如:)colname="col"; df[df[,colname]<5,colname]=0
。
也许最让事情复杂化的是data.table
. 在某些情况下,eval(colname)
and get(colname)
,甚至c(colname)
似乎有效。在其他情况下,DT[,colname, with=F]
是解决方案。然而在其他方面,例如set()
andsubset()
函数,我根本没有找到解决方案。最后,前面讨论了一个极端的,虽然也是相当常见的用例(以编程方式将列名传递给 data.table),并且提出的解决方案,虽然显然在做他们的工作,但似乎不是特别可读......
也许我把事情复杂化了太多?如果有人能记下一份快速备忘单,以使用不同常见场景的变量来引用data.table
列名,我将不胜感激。
更新:
如果我可以对列名进行硬编码,则可以使用一些具体示例:
x.short = subset(x, abs(dist)<=100)
set(x, which(x$val<10), "val", 0)
现在假设distcol="dist"
,valcol="val"
。distcol
使用andvalcol
而不是dist
and来完成上述操作的最佳方法是什么val
?