我運行下面的代碼什麼功能LS()中的R爲環境做
sapply(0:3, function(x){ls(envir = sys.frame(x))})
,並得到以下結果
[[1]]
[1] "mat" "mat_inverse"
[[2]]
[1] "FUN" "simplify" "USE.NAMES" "X"
[[3]]
[1] "FUN" "X"
[[4]]
[1] "x"
好像它會列出當前的所有對象封閉環境;我有mat和mat_inverse作爲兩個變量。但我不確定[[2]],[[3]],[[4]]返回的是什麼。有沒有辦法調試這段代碼來跟蹤這段代碼的作用?特別是以下部分:
envir = sys.frame(x)
對我來說很混亂。
只需在命令提示符下敲入沒有括號或參數的函數並按ENTER(即'> ls'),就可以獲得函數的代碼。請注意,您將'ls()'應用於'0:4'的'sys.frame'環境,這就是爲什麼您得到返回的長度爲4的列表。 – gung
謝謝你的迴應。 envir = sys.frame(x))是做什麼的? –
我不確定;這不是我所處理過的。從文檔中,'sys.frame()'允許你訪問不同的環境,w /'0'是堆棧的最頂層。也許其他人更瞭解這一點。更重要的是,你爲什麼運行這個代碼?你想要達到什麼目標? – gung