相关疑难解决方法(0)

为什么函数A体中的变量查找从全局环境中获取值,而不是从调用A的函数B中获取值?

我定义了一个函数:

.get <- function( o, ...) {
    p <- match.call( expand.dots = 0)$...
    cat( sprintf( 'In .get, it is %s.\n', eval( tail( p, 1)[[ 1]])))
    fn <- switch( typeof( o), list =, environment = `[[`, 'S4' = '@', `[`)
    if( length( p)) eval( as.call( c( fn, quote( o), p))) else o # Here when true, I compose a call based on p.
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试如下:

it <- 1
m <- matrix( seq( 9), 3)
sapply( seq( 3), function( it) {
    cat( …
Run Code Online (Sandbox Code Playgroud)

environment r call

6
推荐指数
1
解决办法
423
查看次数

使用功能和环境

这里在最近的讨论(如1,2)我现在用在我的一些代码的环境.我的问题是,如何根据参数创建修改环境的函数?例如:

y <- new.env()
with(y, x <- 1)
f <- function(env,z) {
    with(env, x+z)
}
f(y,z=1)
Run Code Online (Sandbox Code Playgroud)

Error in eval(expr, envir, enclos) : object 'z' not found
Run Code Online (Sandbox Code Playgroud)

我正在使用环境来同时保持两组模拟(没有重构我的代码,我为一组实验编写了代码).

scope r

3
推荐指数
1
解决办法
3730
查看次数

标签 统计

r ×2

call ×1

environment ×1

scope ×1