Day 10- R語言 矩陣(matrices)、data frame
(前言:由於本人沒有接觸過程式語言及程式設計,寫的內容可能不是很正確,還請大家多多指教 :D)
在學完前面的向量之後,現在我們要開始接觸矩陣和資料框了 ˊˇˋ,還記得在第二天有說到R語言的其中一種程式設計法是陣列程式設計嗎?沒錯,今天我們就要好好發揮這個特性建立、使用矩陣和資料框,那我們就開始吧
不過,在正式進入矩陣之前,我們先用向量做出發點進入矩陣這個主題。以下,還是老樣子,用例題來學習吧
先建立一個1-30的向量 kirbsplayground 。
這時候,我們可以用 dim
函數檢查這個向量的維度(dimension),但是我們得到的結果會是NULL
,畢竟向量本身是沒有維度的,但是如果用length
函數檢查向量長度的話,可以得30這個結果。
那如果要給這個向量一個維度來建立矩陣呢?可以喔!同樣地,我們用dim
函數來執行這項任務,不過要在後面加上一個c
函數,括號內指定維度即可,例:dim(kirbsplayground) <- c(5, 6)
,結果如下:
(註:用class
函數可以檢驗kirbsplayground的屬性,結果會是matrix
)
當然,要建立一個矩陣是不用這麼麻煩的,其實前面的步驟只要用一個matrix
函數就搞定了,matrix
函數寫法如下:matrix(矩陣首數:矩陣尾數, nrow = 列數, ncol = 欄數)
。
建立一個矩陣後,我們也可以為矩陣的列/欄命名。這樣的話要先建立兩個向量(要賦值到變數),例:一個為names ,一個為 stuffs,在這兩個向量裡分別指定對應矩陣列、欄數量的變數(在kirbsplayground裡有五個列,六個欄)。做好之後用cbind
(欄)或rbind
(列)函數+引數(欄/列變數, 矩陣變數)
。範例輸出結果如下:
但是,輸出的結果好像有點怪怪的,數字都變成字串了。這是因為矩陣只能儲存一種性質的資料,但是我們放進這個矩陣的資料有兩種(數字、字串),因此,R會強迫數字變成字串。如果不想看到這些雙引號的話,R的data frame就很好用了,因為data frame 可以同時讓我們在同一個data frame裡儲存一種以上的資料。要將向量轉成data frame的函數就是data.frame
,括弧中分別填上向量變數及矩陣變數。例:
就差最後一步了!現在要替欄位命名,命名方式很簡單,只要打上colnames(data frames變數名稱) <- 欄位名
稱變數,就可以了,例如:colnames(kirbsplayground) <- stuffs
,輸出結果如下:
這樣就有一個美美的矩陣啦 :D
明天要學的是更多的邏輯函數 :)