我目前正在为特定情节编写一个相当大的功能。我想保留函数创建的所有对象以解决错误,但到目前为止我的网络搜索都没有成功。
快速可视化。假设
fun <- function(x) {
y <- x+1
z <- y^2
z*4
}
fun(2)
[1] 36
对于这个简单的情况,我想将y和z保持在一个可访问的环境中,以便能够理解我的函数的某些阶段产生的结果。
提前致谢!
答案 0 :(得分:1)
您可以返回列表中的对象,或使用
分配函数内的变量assign("x", x, envir = .GlobalEnv)
答案 1 :(得分:1)
与@ user116的回答类似,有一个特殊的运算符可以实现您想要的效果。
它是使用<<-
运算符的分配函数的快捷方式。查看help("<<-")
了解详情。但基本上,你可以&#34;保存&#34;这样做是y
和z
在全球环境中:
# Make sure that these do not exist first.
stopifnot( all( !exists("y"), !exists("z")))
fun <- function(x) {
y <<- x+1
z <<- y^2
z*4
}
fun(2)
# Verify y and z exist now.
stopifnot( all( exists("y"), exists("z")))
y
z
有很多关于环境的知识,这可能对编写长函数等有帮助,所以这只是冰山一角。