我定义了一个函数:
.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) 这里在最近的讨论(如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)
我正在使用环境来同时保持两组模拟(没有重构我的代码,我为一组实验编写了代码).