簡體   English   中英

R中如何獲取調用函數環境中的對象?

[英]How to obtain objects in the environment of the calling function in R?

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()
}

從文檔:

名稱:列出可用對象時使用的環境。 默認為當前環境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM