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而不是distand来完成上述操作的最佳方法是什么val?