基本概念
○ 為直譯式語言 (單獨一行執行,可直接看到執行結果)
○ 為物件導向語言
# 應用範圍
● 統計分析
● 迴歸分析
● 資料分群
● 資料分類
● 推薦系統
● 文字探勘
_________________________________________________________________________________
# 套件相關說明
○ 觀看套件
help(package = 'knitr')
○ 觀看功能說明
?knitr::功能
○搜尋說明功能
help.search("功能")
# -----指令-----------------------------------------------------------------------------------------------------------------------------------*
○ demo() :觀看範例
○ q() :離開 R Session ( 結束R Studio )
○ ls():觀看現有變數
ls()
"A" "B" "i" "j" "mat" "mat1" "mat2" "V"
○ rm:刪除變數
例: rm(A)
# 用來當單行註解
- 分為兩種 " = " & " <- " 皆是將左邊的值指定給右邊的值
例:
A = 5
A <- 5
以上兩種寫法皆可但請擇一使用,不要混用以免解讀困難
- 推薦使用 " <- " , 在Rstudio中,Alt+- 就可以打出這個符號
#-----運算子應用---------------------------------------------------------------------------------------------------------------------------------*
○ 加
> 5+3
[1] 8
○減
> 5-3
[1] 2
○乘
> 5*3
[1] 15
○除
> 5/3
[1] 1.666667
> 11/2
[1] 5.5
(此處並不會四捨五入)
○指數
> 5^6
[1] 15625
○求餘數
> 5%%3
[1] 2
#-----資料型態---------------------------------------------------------------------------------------------------------------------------------------*
分為三種,數值、字串 、布林
# 數值
numer
# 字串
char
# 布林
logic
※ 如果要檢查資料型態可以用class()
例:
# 數值
>Apple =49
> Apple → 秀出Apple的內容
[1] 49
> class(Apple )
[1] "numeric" → 秀出型態
# 字串
> word="Hello World"
> word
[1] "Hello World"
> class(word)
[1] "character" → 秀出型態
# 布林
> boolean= FALSE ps. TRUE & FALSE 皆為大寫字母
> boolean
[1] FALSE
> class(boolean)
[1] "logical" → 秀出型態
※ 不同的資料型態無法一起做運算
_________________________________________________________________________________
向量vector
# 串接指令 c( )
- 用來串連多個字串; c是 “Combine Values into a Vector or List” 意思
- 所謂的vetor字面上是「向量」的意思,在此是指同樣屬性的資料的集合(如都是數字或都是文字)。
- 也可以將 c() 想像為一個盤子用來裝東西用的
- 請注意只能使用小寫c,大寫C不適用
數值
> price_vec = c(100,80,60) # price_vec = 變數名稱 vector (向量)
> price_vec
[1] 100 80 60
字串
> fruit_vec = c("apple","berry","orange")
> fruit_vec
[1] "apple" "berry" "orange"
#----- 向量的運算------------------------------------------------------------------------------------------------------------------------------*
> x = c(1,3,5)
> y = c(2,4,6)
> x+y
[1] 3 7 11
> x-y
[1] -1 -1 -1
> x*y
[1] 2 12 30
> x/y
[1] 0.5000000 0.7500000 0.8333333
> y%%x
[1] 0 1 1
加總向量 sum()
> x = c(1,3,5)
> sum(x)
[1] 9
# ------指定名稱 names( )-----------------------------------------------------------------------------------------------------------------*
○ 使用指定名稱names前
> price_vec = c(100,80,60)
> price_vec
[1] 100 80 60 # result
○ 使用指定名稱names後
> names(price_vec) = c("apple","berry","orange") # 將要被指定的值代入names(),取代的值放入c()內
> price_vec
apple berry orange # result
100 80 60
# -----判斷向量是否符合條件-------------------------------------------------------------------------------------------------------*
以布林值表示結果 (TRUE , FALSE)
○ 大於
price_vec > 70
apple berry orange
TRUE TRUE FALSE
○ 小於
> price_vec < 70
apple berry orange
FALSE FALSE TRUE
○ 大於等於
> price_vec >= 80
apple berry orange
TRUE TRUE FALSE
○ 小於等於
> price_vec <= 80
apple berry orange
FALSE TRUE TRUE
○ 等於
> price_vec == 100
apple berry orange
TRUE FALSE FALSE
○ 不等於
> price_vec != 70
apple berry orange
TRUE TRUE TRUE
# ------自動產生向量-------------------------------------------------------------------------------------------------------------------*
○ 產生 1~15
> X = 1:15 := 到
> X
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
○ 產生 1~15 (seq的用法)
> y = seq(1,15) , = 到
> y
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#----- seq() 產生不同類型的向量----------------------------------------------------------------------------------------------------*
> seq(1,15,2)
[1] 1 3 5 7 9 11 13 15
● 1 = 起始數值
● 15 = 終止數值
● 2 = 每次跳號數值
> seq(1,5, by = 0.5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
● 1 = 起始數值
● 15 = 終止數值
● 2 = 每次增加的數值
> seq(1,15,length=9)
[1] 1.00 2.75 4.50 6.25 8.00 9.75 11.50 13.25 15.00
● 1 = 起始數值
● 15 = 終止數值
● 2 = 將1~15平均分配為length值的個數
# ----rep ( ) 產生重複的向量元素---------------------------------------------------------------------------------------------------*
> rep(c(5,2),3)
[1] 5 2 5 2 5 2
● c( )內的數字重複,N次
> rep(c(3,9),each=2)
[1] 3 3 9 9
● c( )內的數字依序重複each=N次
> rep_len(c(7,1),7)
[1] 7 1 7 1 7 1 7
●c( )內的數字依序且重複 直到長度=N
#----- vector( ) 產生初始向量 --------------------------------------------------------------------------------------------------------*
什麼時候用得到
○ 數值
> vector("numeric",length=5)
[1] 0 0 0 0 0 (初始值為0)
○ 字串
> vector("character",length=5)
[1] "" "" "" "" "" (初始值為空字串)
○ 布林
> vector("logical",length=5)
[1] FALSE FALSE FALSE FALSE FALSE (初始值為FALSE)
*---------------------------------------------------------------------------------------------------------------------------------------------*
例題:找出BMI異常的人
height_vec=c(180,169,173) # 身高
weight_vec=c(73,87,43) # 體重
bmi_vec = weight_vec / (height_vec/100)^2 # 求BMI
names(bmi_vec) = c("Brain","Toby","Sherry")
bmi_vec
# 判斷條件
bmi_vec < 18.5
bmi_vec >= 18.5 & bmi_vec < 27
bmi_vec >= 27 & bmi_vec < 30
bmi_vec >= 30 & bmi_vec < 35
bmi_vec >= 35
bmi_vec >= 18.5 & bmi_vec < 24
ifelse(bmi_vec >= 18.5 & bmi_vec < 24, "正常","異常") # 在此區間內的值為"正常",反之"異常"
*---------------------------------------------------------------------------------------------------------------------------------------------*
例題: 利用seq和sum加總
x = 1:100
sum(x)
y = seq(1,100)
sum(seq(1,100))
相關參考資訊來源:R統計軟體初階課程
邱老師教學
沒有留言:
張貼留言