gpt4 book ai didi

r - R 2.11.1 : What's going wrong? 中的范围和功能

转载 作者:行者123 更新时间:2023-12-03 22:32:02 24 4
gpt4 key购买 nike

这个问题来自一系列其他问题,它们都处理本质上相同的问题。由于一些奇怪的原因,在另一个函数中使用一个函数有时会失败,因为在第一个函数的本地环境中定义的变量在第二个函数中找不到。

伪代码中的经典模式:

ff <- function(x){
y <- some_value
some_function(y)
}
ff(x)

Error in eval(expr, envir, enclos) : object 'y' not found



首先,我认为它与 S4 方法和其中的范围有关,但它也与其他函数有关。我与 R 开发团队进行了一些互动,但他们所做的只是将我引导到错误报告站点(我不得不说,这不是最吸引人的站点)。我从来没有得到任何反馈。

随着问题不断出现,不知道有没有逻辑上的解释。在所有这些情况下,这是一个常见的错误吗?如果有,是哪一个?或者它真的是一个错误?

其中一些问题:
  • Using functions and environments
  • R (statistical) scoping error using transformBy(), part of the doBy package.
  • How to use acast (reshape2) within a function in R?
  • Why can't I pass a dataset to a function?
  • Values not being copied to the next local environment

  • PS:我知道R-devel列表,以防你想知道......

    最佳答案

    R 既有词法作用域,也有动态作用域。词法作用域自动工作,但动态作用域必须手动实现,并且需要仔细记账。只有交互式地用于数据分析的函数才需要动态范围,所以大多数作者(像我一样!)没有学会如何正确地进行。

    另见:standard non-standard evaluation rules .

    关于r - R 2.11.1 : What's going wrong? 中的范围和功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3840769/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com