这似乎是个非常简单的问题,但是它的解决方案已经使我尝试、搜索和阅读手册和在线资料约90分钟了。
假设我有一个data.table:
DT<-data.table(a=runif(n = 10),b=runif(n = 10),c=runif(n = 10))
显然,像这样的东西起作用:
DT[a > 0.5]
并给我一个DT子集,其中列“a”中的值大于0.5。但如果我想要更加灵活一些呢(因为子集嵌入在一个更大的例程中)。
我想要做的是使这个原型函数起作用:
flexSubset<-function(sColumnToSubset,dMin){
subs<-DT[sColumnToSubset>dMin]
return(subs)
}
我尝试过很多方法,但都没有成功…
with=FALSE
有什么建议吗?非常感谢您提前花费的时间!
DT[eval(parse(text=sColumnToSubset))<dMin]
可以工作,但我相信会有更好的解决方案。 - nicola