Vector and List
Vector
vector是R最基礎的物件型態,初始化的方法:
c()
直接賦值初始化。x <- c(obj1, obj2, obj...) #obj必須為同一種class。
vector()
,以屬性初始化vector。x <- vector("numeric", length = 10) #用class name和長度初始化vector。
Coercion轉換
自動提升:當使用不同class的object創建vector時,較低階的object會自動被提升。
提升的順序: logical -> integer -> numeric -> complex -> character
顯式轉換:利用as.*之類的函數對目標物件進行class轉換。
例如:as.integer(logical obj)將obj提升為integer,注意只能向上提升,無法往下降階(會產生NA)。
List
與vector相較,List可以容納不同class的obj而不會發生轉換,初始化的方法:
list(),直接賦值初始化。
x <- list(obj1, obj2, obj...) #obj可為不同種class。
vector(),以屬性初始化vector。
x <- vector("list", length = 10) #初始化一個長度為10,空的list(Evaluation會得到NULL)。