琴子 [R 語言] 程式設計教學:資料型態 (Data Type)

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

本文介紹 R 的資料型態,做為撰寫 R 程式的基礎知識。

R 語言的資料型態和主流程式語言的資料型態相異,這是因為 R 一開始就是設計成數理運算的工具,而非通用型語言。在學習時可注意一下這個差異點。

可以把 R 資料型態想成給數理運算使用的資料結構,就不會和一般程式語言所描述的資料型態搞混。

向量 (Vector)

向量是由單一資料型態元素組成的線性容器。

c(10.4, 5.6, 3.1, 6.4, 21.7)

向量元素的資料型態 (atomic vector type) 可能是布林 (logical)、整數 (integer)、實數 (real)、複數 (complex)、字串 (string)、原始資料 (raw)。

嚴格來說,R 沒有純量 (scalar),向量是該語言最基本的資料結構。舉例來說,12345 在別的程式語言是數字,但在 R 是資料型態為 double (註) 、長度為 1 的向量:

> typeof(12345)
"double"
> length(12345)
1

(註) 雙精度浮點數

因素 (Factor)

因素也是向量。該資料結構的目的是節省類別變量 (categorical data) 的運算資源。使用 factor 函式建立因素:

factor(c("a", "b", "c"))

矩陣 (Matrix)

矩陣是由單一資料型態元素組成的二維矩形容器。使用 matrix 函式建立矩陣:

matrix(c(1, 2, 3, 4, 5, 6), nrow=2, ncol=3, byrow=TRUE)

資料框 (Data Frame)

資料框也是二維矩形容器,但不同欄 (column) 的資料型態可相異。建立資料框常見的方式是從檔案讀入資料,像是 CSV、試算表等:

read.csv("sheet.csv", header=TRUE, fill=TRUE)

串列 (List)

串列是類似於向量的線性容器,但其組成元素的資料型態可能相異。

陣列 (Array)

R 陣列和主流語言的陣列是不同的意思。前者是用來放多維度資料的容器,算是從矩陣延伸出來的資料結構。

函式 (Function)

函式是可重覆使用的程式碼區塊。R 語言的函式可以當成值來儲存,所以可以在 R 程式中使用一些函數式程式的撰碼模式。

繼續深入

為了節約篇幅,本文僅簡單地介紹 R 語言的資料型態。我們會在後續文章逐一說明各個資料型態的操作方式。

關於作者 琴子喜歡觀察市場邏輯,也喜歡沉靜地彈鋼琴。旅行時總習慣記錄風景背後的脈絡,投資時則偏好慢慢思考而非追高殺低。

現實中關注全球經濟與資產配置,虛擬世界則熱衷於在《黑色沙漠》裡操作漁業與貿易鏈,研究市場機制與角色配置的效率極限。

「理性投資」是琴子整理思緒、檢視決策的地方。不是為了給建議,而是希望留下清楚的腳印,提醒自己:判斷永遠比預測重要。