使eval()使用函数环境而不是全局环境

朗道

编辑:我未能分享与我的用例更相关的MWE。

我无法eval()使用正确的环境。

> f = function(x) {eval.parent(parse(text = x))}
> h = Vectorize(f, "x")
> g = function() {a = 2; h("a")}
> a = 1
> h("a")
a
1
> g()
a
1

以上,我想g()返回2

顺便说一句:我阅读了Hadley关于环境非标准评估的章节

财务管理师

(原始问题)这将从以下位置提取身体表达f并对其进行局部评估g

 f = function(x) {eval(parse(text = x))}
 g = function() {a = 2; eval( body(f), envir = list(x="a"))}

> g()
[1] 2

也可以尝试以下方法:

>  g = function() {a = 2; eval(call("f", a))}
> g()
[1] 2

致低级投票者:解释一个答案为什么“无用”是有礼貌的。否则,我们只能猜测可能是哪个方面(正确性,可取性或???)触发了投票。

编辑后:现在,这将向遵循严格编码“道德”的人们提供所要求的结果,并且可能以不太潜在的冒犯性的方式传递给他们:

 g = function() {a = 2; environment(h)$FUN(a)}
 g()
#[1] 2

可以在Vectorized函数中提取项目的名称和类别:

> ls.str(environment(h))
arg.names :  chr "x"
collisions :  logi FALSE
FUN : function (x)  
FUNV : function (x)  
SIMPLIFY :  logi TRUE
USE.NAMES :  logi TRUE
vectorize.args :  chr "x"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在全局环境中从函数内部使用exec定义函数

来自分类Dev

函数内的eval(parse(text = x)),如何在全局环境中求值?

来自分类Dev

在隔离的环境中使用eval()

来自分类Dev

R Step函数在全局环境中查找数据,而不是在定义的函数内部查找数据

来自分类Dev

在全局环境中存储函数中的变量

来自分类Dev

从R中的函数写入全局环境

来自分类Dev

将函数复制到全局环境

来自分类Dev

从 R 中的函数中读取全局环境

来自分类Dev

循环使用全局环境中的对象(R)

来自分类Dev

在R中将值从函数绑定到全局环境

来自分类Dev

全局函数内部的访问环境变量-SwiftUI + CoreData

来自分类Dev

在R中将值从函数绑定到全局环境

来自分类Dev

在 R 中为全局环境分配动态函数

来自分类Dev

更改函数环境中的options()而不更改R中全局环境中的options()?

来自分类Dev

使用并行函数时的环境和范围

来自分类Dev

时刻:使用其他语言环境格式化而不改变全局时刻语言环境

来自分类Dev

rpm&rpmbuild-在%files部分使用全局环境变量

来自分类Dev

如何在Rstudio Markdown中使用全局环境中的对象

来自分类Dev

不是conda环境

来自分类Dev

被全局环境掩盖的对象的含义

来自分类Dev

全局定义 Javascript 语言环境

来自分类Dev

eval(expr,envir,enclos)中的错误:找不到函数-嵌套函数和环境

来自分类Dev

嵌套函数环境选择

来自分类Dev

`"apue.h"` 不是全局环境 PATH ,但程序可以检索它

来自分类Dev

为什么Spyder使用基本环境中的库而不是虚拟环境中的库

来自分类Dev

在函数环境中的 lm 公式中使用函数参数

来自分类Dev

在使用R函数的情况下,环境的父级父环境是否也是该环境的父级?

来自分类Dev

为什么pubspec环境/ sdk /使用“'> = 2.7.0 <3.0.0'”而不是“ ^ 2.7.0”

来自分类Dev

从全局环境访问直接传递给ggplot包装器中的函数的对象

Related 相关文章

  1. 1

    在全局环境中从函数内部使用exec定义函数

  2. 2

    函数内的eval(parse(text = x)),如何在全局环境中求值?

  3. 3

    在隔离的环境中使用eval()

  4. 4

    R Step函数在全局环境中查找数据,而不是在定义的函数内部查找数据

  5. 5

    在全局环境中存储函数中的变量

  6. 6

    从R中的函数写入全局环境

  7. 7

    将函数复制到全局环境

  8. 8

    从 R 中的函数中读取全局环境

  9. 9

    循环使用全局环境中的对象(R)

  10. 10

    在R中将值从函数绑定到全局环境

  11. 11

    全局函数内部的访问环境变量-SwiftUI + CoreData

  12. 12

    在R中将值从函数绑定到全局环境

  13. 13

    在 R 中为全局环境分配动态函数

  14. 14

    更改函数环境中的options()而不更改R中全局环境中的options()?

  15. 15

    使用并行函数时的环境和范围

  16. 16

    时刻:使用其他语言环境格式化而不改变全局时刻语言环境

  17. 17

    rpm&rpmbuild-在%files部分使用全局环境变量

  18. 18

    如何在Rstudio Markdown中使用全局环境中的对象

  19. 19

    不是conda环境

  20. 20

    被全局环境掩盖的对象的含义

  21. 21

    全局定义 Javascript 语言环境

  22. 22

    eval(expr,envir,enclos)中的错误:找不到函数-嵌套函数和环境

  23. 23

    嵌套函数环境选择

  24. 24

    `"apue.h"` 不是全局环境 PATH ,但程序可以检索它

  25. 25

    为什么Spyder使用基本环境中的库而不是虚拟环境中的库

  26. 26

    在函数环境中的 lm 公式中使用函数参数

  27. 27

    在使用R函数的情况下,环境的父级父环境是否也是该环境的父级?

  28. 28

    为什么pubspec环境/ sdk /使用“'> = 2.7.0 <3.0.0'”而不是“ ^ 2.7.0”

  29. 29

    从全局环境访问直接传递给ggplot包装器中的函数的对象

热门标签

归档