---
# System prepended metadata

title: R 語言學習心得-基礎篇
tags: [beginner, tutorial, R, cat]

---

---
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`

