我有一个函数,我正在使用 rxXdfToDataFrame 读取 xdf 文件,并在我的表达式中使用变量进行 rowSelection。如果我不通过transformEnvir=environment()
,则找不到该变量。我的问题是,用 调用函数后transformEnvir
,我似乎无法可靠地访问.GlobalEnv
. 如果我将一个数字硬编码到rowSelection
我不需要使用transformEnvir
并且一切正常。我尝试设置环境,但我不确定我是否做得正确。
以下代码重现了我的问题:
envirtest = function()
{
require(data.table)
df = data.frame(x=1:10)
selectnum = 5
rxDataFrameToXdf(df, "testxdf.xdf")
testdf = rxXdfToDataFrame("testxdf.xdf",rowSelection=(x==selectnum),transformEnvir=environment())
testdt = setDT(testdf)
}
发生的错误:
Error in envirtest() : could not find function "setDT"
但是,如果使用 , 而不是setDT()
,data.table::setDT()
则函数执行。
编辑:我忘了提到我已经尝试过没有transformEnvir
设置并且一切正常。此外,tables() 已更改为 setDT() 以避免可能的混淆。