R 變數與工作空間

工作空間

在 R 的互動式環境下工作時,我們可以使用 ls 來列出目前已經被建立的變數名稱:

foo <- 3
bar <- "Hello World"
foo.bar <- 1:5
ls()
[1] "bar"     "foo"     "foo.bar"

lspattern 參數可以指定搜尋的關鍵字,篩選變數名稱:

ls(pattern = "foo")
[1] "foo"     "foo.bar"

在預設的狀況下,ls 不會顯示以句點(.)開頭的隱藏變數(這跟 UNIX/Linux 系統上的規則相同),如果想要連同隱藏的變數一起列出來,可以加上 all.names = TRUE 參數:

.hide.var <- 23
ls()
[1] "bar"     "foo"     "foo.bar"
ls(all.names = TRUE)
[1] ".hide.var" "bar"       "foo"       "foo.bar"

ls.str 是結合 lsstr 的一個函數,可以列出各個變數的名稱與內部結構:

ls.str()
bar :  chr "Hello World"
foo :  num 3
foo.bar :  int [1:5] 1 2 3 4 5

browseEnv 可以在瀏覽器中顯示目前工作空間中的變數:

browseEnv()
r-browseenv-list-objects-1

browseEnv

通常在 R 的環境下工作一段時間之後,會在工作空間中建立許多的變數,如果要刪除一些不再使用的變數,可以使用 rm 函數:

rm(bar, foo)

rm 可以配合 ls 將所有的變數一次刪除:

rm(list = ls())

補充資料

R 有四種區分變數類型的屬性,分別為類別(class)、類型(type)、模式(mode)與儲存模式(storage mode),大部分的狀況下我們只會使用到類別(class),遇到類別不敷使用時才會需要使用其他幾個屬性(例如區分陣列(array)的狀況),這時候就可以使用 is.numeric 這類的函數。

下表是 R 各種類型變數的類別(class)、類型(type)、模式(mode)與儲存模式(storage mode)的對應。

類別類型模式儲存模式
Logicallogicallogicallogicallogical
Integerintegerintegernumericinteger
Floating Pointnumericdoublenumericdouble
Complexcomplexcomplexcomplexcomplex
Stringcharactercharactercharactercharacter
Raw Byterawrawrawraw
Categoricalfactorintegernumericinteger
NullNULLNULLNULLNULL
Logical Matrixmatrixlogicallogicallogical
Numeric Matrixmatrixdoublenumericdouble
Character Matrixmatrixcharactercharactercharacter
Logical Arrayarraylogicallogicallogical
Numeric Arrayarraydoublenumericdouble
Character Arrayarraycharactercharactercharacter
Listlistlistlistlist
Data Framedata.framelistlistlist
Functionfunctionclosurefunctionfunction
Environmentenvironmentenvironmentenvironmentenvironment
Expressionexpressionexpressionexpressionexpression
Callcalllanguagecalllanguage
Formulaformulalanguagecalllanguage
R
  1. derek

    你好,想问一下,因子变量那部分,sample计划是10000个,为什么下面写5000呢,很困惑,多谢

    • G. T. Wang

      抱歉,這是我筆誤寫錯了,目前文章已經更正,謝謝您。

  2. Annie

    你好, 我想請問
    就是我再開view的時候中文的部分都會是亂碼
    但使用fix的時候則不會,我是使用mac
    請問這問題有解決辦法嗎?

  3. 路人

    femail
    有錯字

Leave a Reply