若要取得物件的模式,可以使用
mode()
,這個函數,它需要一個R物件當做參數,下列是一些例子:
1.41421
,在 R 的模式是numberic
:
> mode(1.141421) [1] "numeric"
"Hello R"
的模式是character
:
> mode("Hello R") [1] "character"當我們指定了一個向量(Vector)後,它的模式是由它所包含的元素來決定的:
> n <- c(1, 2, 3, 4, 5) > mode(n) [1] "numeric" > n1 <- c("a", "b", "c") > mode(n1) [1] "character"上列
n
變數所包含的元素的模式皆為numeric
所以它的模式是numeric
。
再來看看
n1
,它所包含的元素的模式皆為character
所以它的模式是character
。
鏘鏘鏘!在【R筆記】初探R資料結構-向量(Vector)有提到,在向量中所有的元素,其資料型別都要一樣,指的就是元素所有的模式。 接著,我們來看看列表(List)的模式為何:
> list2 <- list(1, 2, 3, "x", "y", "z") > mode(list2) [1] "list"因為我們在【R筆記】初探R資料結構-列表(List)中有提到,在列表所包含的元素,其模式可以不一樣,所以使用
mode()
函式看模式時,有另一種list
的模式。
最後,我們常常在使用的各種函式,也有自己的模式,如
print()
函式的模式是function
> mode(print) [1] "function"在R中,每一個物件也有一個類別(class),相對於模式來講,它具備的是比較抽象的概念,R根據一個物件類別,來決定以何種方式來做資料處理。 如我們看一個內建的資料集
mtcars
的模式和類別:
> mode(mtcars) [1] "list" > class(mtcars) [1] "data.frame"上列結果說明,
mtcars
這個資料集是以list
型式儲存在記憶體中,而我們要處理它時,如使用print()
函式將mtcars
輸出,R會依據它的類別來做合適的處理。
若你想進一步認識R,我推薦R 錦囊妙計。