R - 获取从函数调用创建的所有变量

SFu*_*n28 12 r

这很疯狂,只是出于好奇心:我可以在R中运行一个函数,在函数完成后我可以获得函数执行时创建的所有变量吗?那么能够在返回之前查看函数吗?我不是说在调试模式下进入该功能.

koh*_*ske 19

我不确定这是不是你想要的,但可能很接近.您可以通过trace以下方式在现有函数中嵌入仲裁表达式:

> trace(lm, exit = function().last_env <<- parent.frame())
Tracing function "lm" in package "stats"
[1] "lm"
> lm(y~x, data.frame(x=1:10, y=10:1))
Tracing lm(y ~ x, data.frame(x = 1:10, y = 10:1)) on exit 

Call:
lm(formula = y ~ x, data = data.frame(x = 1:10, y = 10:1))

Coefficients:
(Intercept)            x  
         11           -1  

> ls(.last_env)
 [1] "cl"          "contrasts"   "data"        "formula"     "m"           "method"      "mf"          "model"       "mt"          "na.action"   "offset"     
[12] "qr"          "ret.x"       "ret.y"       "singular.ok" "subset"      "w"           "weights"     "x"           "y"           "z"          
> get("cl", .last_env)
lm(formula = y ~ x, data = data.frame(x = 1:10, y = 10:1))
Run Code Online (Sandbox Code Playgroud)