这太疯狂了,只是出于对知识的好奇:我可以在R中运行一个函数,以便在函数完成后我可以获取函数执行时创建的所有变量吗?那么在返回之前能够查看一个函数的能力呢?我不是说在调试模式下进入该功能。R - 获得函数调用创建的所有变量
12
A
回答
18
我不确定这是你想要的,但也许很接近。 您可以嵌入由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))
0
这是那种你正在寻找的东西?
> fjj <- function() { x <- 3; y <- 4; ls(environment())}
> fjj()
[1] "x" "y"
或者你可能想要一个你得到每个组件的列表。
1
要获得一个列表中,您可以使用此示例中的函数的最后一行的所有变量及其值:
myFunction=function(){
a="lolcat"
b=data.frame(firstCol=1:3,secondCol=letters[1:3])
d=list()
d[["someName"]]=10:13
sapply(ls(),function(x)get(x),simplify=F,USE.NAMES=T)
}
myResults=myFunction()
myResults
输出:
$a
[1] "lolcat"
$b
firstCol secondCol
1 1 a
2 2 b
3 3 c
$d
$d$someName
[1] 10 11 12 13
相关问题
- 1. 如何获得函数内调用函数的变量值
- 2. 创建获取变量值的函数
- 3. Python变量创建函数
- 4. 使用函数中创建的变量
- 5. 在函数中创建变量常量R
- 6. 获得UL的所有值成变量
- 7. 在R脚本中,如何使用所有参数的变量创建序列?
- 8. 根据现有变量使用R创建新变量
- 9. 如何使用循环来获得所有变量对的xtabs函数结果?
- 10. 动态地创建未定义的变量调用函数
- 11. 使用R创建变量的日期
- 12. 如何获得所有全局变量
- 13. 使用R获得一年中所有日子的矢量
- 14. R:使用所有键盘常量创建矢量
- 15. 创建通用函数,将在所有路由调用
- 16. 如何在构造函数调用方法中创建变量?
- 17. 用回调函数创建变量sheerock js
- 18. 每次调用函数或创建本地变量
- 19. 创建新的变量函数
- 20. 在具有全局作用域的函数中创建变量?
- 21. R自定义函数适用于数据框中的所有变量
- 22. 创建一个函数,用Javascript中的变量列表创建一个函数
- 23. PHP变量获得下()函数
- 24. 如何根据现有变量创建新的r数据框变量
- 25. jQuery的 - 从另一个函数变量调用函数变量
- 26. 函数变量内部的调用函数变量
- 27. 从变量调用函数
- 28. 调用函数 - 变量
- 29. R:有没有办法捕获所有的函数参数值
- 30. 具有变量数量参数的Ruby调用函数
是'LS()'在功能结束不足?你是说你想要在函数内部或函数外部获取变量列表吗? – kohske
我没有这个函数的源码,所以我不能把ls放在里面。想象一下,我想对其中一个基本库中的函数执行此操作。 – SFun28