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()获得的对象进行操作。
答案 0 :(得分:3)
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:列出可用对象时使用的环境。 默认为当前环境。