你希望知道目前工作空間中存在哪些已定義的變量和函數。
解決方案
使用ls函數,或者使用ls.str函數了解每個變量更詳細的信息。
討論
ls函數可以顯示當前工作空間中所有對象的名稱:
> x <- 10
> y <- 50
> z <- c("three", "blind", "mice")
> f <- function(n,p) sqrt(p*(1-p)/n)
> ls()
[1] "f" "x" "y" "z"
注意,ls函數輸出的結果是一個字符串向量,其中向量的每個元素代表一個變量名。當工作空間中沒有已定義的變量時,函數ls會返回一個空向量,它會產生如下令人迷惑的結果:
> ls()
character(0)
事實上,R軟件采用這樣的方式向用戶說明,ls函數返回一個長度為0的字符串向量;即工作空間中不含有任何已定義變量。
如果你除了變量名稱以外還想對變量有更多的了解,那么你可以使用ls.str函數,該函數會返回變量的一些其他信息:
> ls.str()
f : function (n, p)
x : num 10
y : num 50
z : chr [1:3] "three" "blind" "mice"
ls.str函數之所以寫為ls.str,原因在於其功能既顯示了所有變量的名稱,又對所有變量使用了str函數,方法12.15對此進行了詳細的說明。
ls函數不會顯示以點(.)開頭的變量名,以點開頭的變量一般作為隱藏變量不為用戶所知(這一輸出規定來源於UNIX系統)。在R軟件中,可以通過將ls.str函數中的all.names參數設定為TRUE,強制列出所有變量:
> .hidvar <- 10
> ls()
[1] "f" "x" "y" "z"
> ls(all.names=TRUE)
[1] ".hidvar" "f" "x" "y" "z"
另請參閱
方法2.4介紹了如何刪除變量,方法12.15介紹了如何檢查某一變量。