在R中:如何获得在指定环境中计算的操作的结果
在R中,假设您有一个包含大数据帧“big.df”的环境“big.env”,并且希望从“big.df”中检索一个小子集 您可以在交互式/全局环境中执行以下操作:在R中:如何获得在指定环境中计算的操作的结果,r,R,在R中,假设您有一个包含大数据帧“big.df”的环境“big.env”,并且希望从“big.df”中检索一个小子集 您可以在交互式/全局环境中执行以下操作: big.df = get("big.df", envir = big.env) my.subset = subset(big.df, my.index.table==desired.subset.value) 有没有一种方法可以一步完成子设置和从“big.env”检索 我失败的尝试如下所示: my.subset = eval
big.df = get("big.df", envir = big.env)
my.subset = subset(big.df, my.index.table==desired.subset.value)
有没有一种方法可以一步完成子设置和从“big.env”检索
我失败的尝试如下所示:
my.subset = eval("subset(big.df, my.index.table==desired.subset.value)", envir = big.env)
my.subset = eval(as.expression("subset(big.df, my.index.table==desired.subset.value))", envir = big.env)
my.subset = eval(expression("subset(big.df, my.index.table==desired.subset.value))", envir = big.env)
更一般地说,是否有一种方法可以在环境中执行指令并将结果放入当前/全局环境中?例如,通过以下方式获取上面示例中big.df的colname:
my.colnames = eval(as.expression("colnames(big.df)", envir = big.env)
1)将其称为big.env$big.df
。例如,使用内置的六行数据帧,BOD
我们创建一个包含两次BOD
的测试环境e
,然后提取Time
值大于平均Time
的行:
e <- local({ BOD2 <- 2 * BOD; environment() }) # test data
subset(e$BOD2, Time > mean(Time))
2)与
是另一种方法:
with(e, subset(BOD2, Time > mean(Time)))
或
我猜
my.subset=evalq(subset(big.df,my.index.table==desired.subset.value),envir=big.env)
但是在你的问题中有一个可以测试的变量会有帮助。不清楚所需的位置。定义了subset.value
。是的,evalq有效。谢谢。
with(e, subset(BOD2, Time > mean(Time)))
subset(with(e, BOD2), Time > mean(Time))