開始使用免費開始

我的型別是什麼?

你剛剛看到四個能幫你判斷變數型別的函式。class()文件)與 typeof()文件)很重要,而且會經常派上用場。mode()文件)與 storage.mode()文件)主要是為了與 S 程式語言相容而存在。

在這個練習中,你會查看這些函式對不同變數型別的回傳結果。當中包含一些你可能還沒遇過的少見型別。

  • array文件):矩陣的推廣,可有任意數量的維度。
  • formula文件):被建模與繪圖函式用來定義變數之間關係。

另外,R 中有三種函式。

  • 你大多數會遇到的函式稱為 closure
  • 少數重要的函式,如 length()文件),稱為 builtin 函式,使用特殊的評估機制以提升速度。
  • 語言結構,如 if文件)與 while文件)也都是函式!它們稱為 special 函式。

本練習屬於課程

在 R 中使用 S3 與 R6 的物件導向程式設計

檢視課程

練習說明

type_info() 函式已在你的工作空間預先定義,用來回傳輸入值的 class()mode()typeof()storage.mode()。(在主控台輸入 type_info 可查看其運作方式。)

  • 建立 some_vars,也就是編輯器中提供的一組範例物件清單。
  • 使用 lapply 逐一走訪 some_vars 的元素,對每個範例物件呼叫 type_info(),以探索它們的型別。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Look at the definition of type_info()
type_info

# Create list of example variables
some_vars <- list(
  an_integer_vector = rpois(24, lambda = 5),
  a_numeric_vector = rbeta(24, shape1 = 1, shape2 = 1),
  an_integer_array = array(rbinom(24, size = 8, prob = 0.5), dim = c(2, 3, 4)),
  a_numeric_array = array(rweibull(24, shape = 1, scale = 1), dim = c(2, 3, 4)),
  a_data_frame = data.frame(int = rgeom(24, prob = 0.5), num = runif(24)),
  a_factor = factor(month.abb),
  a_formula = y ~ x,
  a_closure_function = mean,
  a_builtin_function = length,
  a_special_function = `if`
)

# Loop over some_vars calling type_info() on each element to explore them
___
編輯並執行程式碼