gpt4 book ai didi

r - R中如何获取调用函数环境中的对象?

转载 作者:行者123 更新时间:2023-12-05 01:07:52 25 4
gpt4 key购买 nike

test <- function(){    
a = 3
b = c(1,2,3)
c = matrix(-99, 3, 4)
print(getObjects())
}

getObjects <- function(){
return(ls(pos=1))
}

我希望函数测试只打印出 a、b、c,因为这些是函数 test() 范围内的唯一对象(它可以打印测试访问的其他对象/函数,例如 getObjects() 在这种情况下)。但是没有选择 pos 给了我那个?有没有办法在“调用”函数(此处为测试)中获取对象,以便我可以对其进行一些操作,并且“被调用”函数(此处为 getObjects)可以返回结果。我的函数 getObjects 应该对通过执行 ls() 获得的对象进行操作。

最佳答案

test <- function(){    
a = 3
b = c(1,2,3)
c = matrix(-99, 3, 4)
print(getObjects())
}

getObjects <- function(){
return(ls(envir=parent.frame(n = 1)))
}

test()
#[1] "a" "b" "c"

当然,您可以简单地使用 ls 的默认值。 :
test <- function(){    
a = 3
b = c(1,2,3)
c = matrix(-99, 3, 4)
ls()
}

从文档:

name: which environment to use in listing the available objects. Defaults to the current environment.

关于r - R中如何获取调用函数环境中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17830114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com