若要取得物件的模式,可以使用
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 錦囊妙計。