Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中:如何获得在指定环境中计算的操作的结果_R - Fatal编程技术网

在R中:如何获得在指定环境中计算的操作的结果

在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

在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("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))