--- title: 'R 語言學習心得-基礎篇' disqus: hackmd --- R 語言學習心得 基礎篇 === ![downloads](https://img.shields.io/badge/download-R-brightgreen) ![grade](https://img.shields.io/badge/Grade-新手-brightgreen) ![chat](https://img.shields.io/discord/:serverId.svg) --- ## Beginners Guide If you are a total beginner to this, start here! 1. Download R / Rstudio 2. Open it ! (I do all the code in R) 3. Choose a comfortable chair:kissing_heart: 4. Start learning! ---- 基礎知識1 --- 每個程式語言都有一些額外的packages 可以下載 R 語言也不例外,有以下3種packages :eye-in-speech-bubble: 1. 基本套件 : 一安裝R就可以使用(自動載入) 2. 建議套件 : 一安裝R就以下載但沒有自動載入 3. 貢獻套件 : 需要自行下載及載入 ---- 基礎知識2 --- 1. R 語言的變數不需要事先宣告 2. 同一變數也可以連續的存取不同屬性的資料 : ex .數字 -> 字元 -> 數字 3. Data type : numeric = 實數 / logical = 邏輯(True/False) /character = 文字 ---- 動手試試~ --- ```R X <- 4.5 #將4.5這個數字指派給X ; <- 的功能相當於其他語言的 ‘=’ ``` 1. 可用class(X)來查詢X的資料型態 2. 可用#來標示註解 3. 想要清空R console 的介面時 ,按Crtl+L :heavy_check_mark: ![](https://i.imgur.com/78MlMOL.png) --- 向量運算 --- 1. R 語言是基於VECTOR 進行運算 2. 向量裡面的元素必須要同一型態 3. 連接函數c(concatenation)可以用來連接向量 ![](https://i.imgur.com/LfuB1Ao.png) ---- 技巧1.快速生成數字 --- 1. 使用 " : " ex. 生成1到5的整數 c(1:5) 2. 使用seq(from = 起始值,to =終點,by = 間隔) 3. seq()可使用length.out來控制向量元素個數 4. 使用 rep(要重複的數字,times =次數) ![](https://i.imgur.com/KTg398F.png) ---- 技巧2.取出向量數字 --- 1. 取出向量的元素用 " [] " 2. A[索引值]就可以取出對應的元素 3. " [] "內也可以使用c函數進行組合 :::info **第一個位置索引值是1,與c語言不同!!!** ::: ![](https://i.imgur.com/Hu8dKCg.png) ---- 技巧3.儲存檔案/安裝packages/查看用法 --- 1. 檔案 -> 建立新的命令稿 -> 打code -> Ctrl + s -> 存檔 2. 方法1 : 程式套件 -> 安裝程式套件 -> 任選一個http伺服器 -> 找到要安裝的套件 3. 方法2 : install.packages("package-name") 4. 打一個問號在函數前方 ex. ?c #查詢c函數用法 ---- 技巧4.Factor Vector --- **一種特殊的character 型態 目的是用來分類(給予同樣的元素相同編號) 使用as.factor(X) 來將向量X轉換成factor vector 先看下一頁的範例,看完再回來看這頁會更清楚:smile:** ---- ![](https://i.imgur.com/fhIyCso.png) 1. 指定x向量(包含貓/鳥/狗) 2. 再度指定x向量(加入貓/小狗/狗) 3. x1指定為as.factor(x) 4. level 只有4個,元素有6個 5. as.numeric(x1)查詢每個level的編號 --- Matrix運算1 --- 1. Matrix是向量的集合形式,本質是還是向量 2. 簡單形式 : matrix(向量,nrow = 行的數量) 3. 預設的排列是by columns(列) ,可以改成by rows[見下方例子] ```r x <- 1:12 # 建立1~12的向量x ``` ![](https://i.imgur.com/Z7NgXnt.png) ---- Matrix運算2 --- 1. 矩陣因為是向量的合成,所以矩陣內的元素必須要同一型態 2. 同一型態並不必然是實數(numeric)的型態 3. matrix(向量)會導致 nx1 表現形式(n=元素總數) ![](https://i.imgur.com/8AAL6JR.png) ---- Matrix運算3 --- 1. 向量取出方式與matlab相同 m[row , column] 2. 可以使用" : "來選取範圍 ![](https://i.imgur.com/yBBJGYF.png) ---- Matrix運算4 --- 1. 使用 "-" 來刪除matrix元素 2. 試試冒號&c函數!*負號後面括號不要漏掉了* ![](https://i.imgur.com/hcUgDeR.png) ---- Matrix運算5 --- 1. 矩陣內積 A %*% B 2. 轉置函數 t(matrix) ![](https://i.imgur.com/MRw0OAn.png) ---- Matrix運算6 --- 1. 矩陣外積 A %o% B 2. outer(matrix) ![](https://i.imgur.com/XTYAnOL.png) ---- Matrix運算7 --- 1. 增加matrix的方法: rbind & cbind 2. rbind(原矩陣,加入矩陣) 3. rbind(y,x)不等於rbind(x,y) ![](https://i.imgur.com/OkSKlEF.png) ---- Matrix運算8 --- 1. 對矩陣行列做運算用apply() 2. apply(m, dim, function, arg) 3. m : matrix 4. dim : 1 -> for row ; 2 -> for column 5. function : 呼叫的函數 6. arg : 呼叫函數時傳入的參數(可不寫) ---- ![](https://i.imgur.com/BjpjlHE.png) 1. matrix(range,row,col)也是一種矩陣寫法 2. Inverse matrix : solve() ![](https://i.imgur.com/QlABst1.png) --- ## Next Lesson ... 1. Data type : DataFrame 2. Drawing Graphics 3. "Packages" need to be install ## More tutorial / note 1. [my coding-blog](fatcatcat-lab.blogspot.com) 2. [my movie-blog](fatcatcat-movie.blogspot.com) ###### tags: `R` `beginner` `cat` `tutorial`