vector

  • 上週實習課使用 R 時,指令的回傳值多半只有「一個」。但 R 其實是一種以向量作為基本單位的程式語言,所以對於「一個回傳值」更精確的描述應該是「一個長度為 1 的向量」。

    #> [1] 2
    #> [1] TRUE
    #> [1] 1
  • 我們上週簡短提過以 : 製造數列的方式 (e.g. 1:10)。事實上,這個回傳的數列即是一個 vector。另外,由於這個 vector 的每個元素皆是整數,因此這個 vector 屬於 integer vector。我們可以使用 typeof() 確認 vector 的類別

    #> [1] "integer"
  • R 裡面的 vector 可以被分成 6 種類別,其中常見的 4 種分別為 integer, double, , character, logical

integer vector

  • integer vector 的元素由整數組成,它可以是零、正或負的。除了使用 : 製造數列,也可以使用 c() (稱為 concatenate) 組出任意序列的 vector。
    • 使用 c() 製造 integer vector 時,每個整數數字後面必須接 L,若沒有加上 L, R 會將製造出來的 vector 視為 double vector。
#> [1] -1  5  2
#> [1] -1  5  2
#> [1] "integer"
#> [1] "double"

double vector

  • double vector 儲存的是浮點數,亦即含有小數點的數字 (e.g 1.2, -0.75)

  • 在 R 裡面,integer vector 與 double vector 合稱為 numeric vector,兩者之間的區隔通常也不太重要,因為 R 在運算時,通常會將這兩種資料類型自動轉換成合適的類型

    #> [1] "integer"
    #> [1] "double"
    #> [1] TRUE
    #> [1] TRUE
    #> [1] "double"
    #> [1] "double"
  • Special values:
    • Inf: 代表無限大
    • NaN: “Not a Number”,常見於數字運算不符數學定義時,例如:

      #> Warning in log(-1): NaNs produced
      #> [1] NaN
      #> [1] NaN
      #> [1] NaN

character vector

logical vector

  • logical vector 的每個元素由 TRUEFALSE 組成。

  • 可以使用 c() 一項項手動輸入製造 logical vector

  • logical vector 的另一個來源則是 logical test 的回傳值:
    • logical operators: ==, !=, >, <, %in%