1 Basic R
1.1 Basic operation
ท่านสามารถใช้ R
ในการคำนวณต่างๆ ได้ เช่น บวก ลบ คูณ หาร ยกกำลัง เป็นต้น
3+2
## [1] 5
3-2
## [1] 1
3*2
## [1] 6
3/2
## [1] 1.5
3^2
## [1] 9
log(3)
## [1] 1.098612
sqrt(3)
## [1] 1.732051
3==3 # ตรวจสอบว่าข้อมูลเหมือนกันหรือไม่
## [1] TRUE
1.2 Variable
1.2.1 Variable assignment
R
สามารถเก็บข้อมูลต่างๆ ไว้ในตัวแปรได้ เพื่อที่สามารถนำมาใช้ในภายหลัง โดยการเก็บตัวแปรนั้นจะใช้เครื่องหมาย <-
x <- 2
x
## [1] 2
y <- 3
y
## [1] 3
x+y # ท่านสามารถนำตัวแปรมาทำ operation ได้ตามปกติ
## [1] 5
x*y
## [1] 6
x <- 5 # การลงข้อมูลในตัวแปรเดิมจะเป็นการลบตัวแปรเก่า
x
## [1] 5
helloworld <- (x+y)^(x-y) # สามารถตั้งชื่ออะไรก็ได้ตราบใดที่ไม่เว้นวรรค
helloworld
## [1] 64
1.2.2 Type of variable
R
นั้นสามารถรองรับตัวแปรต่างๆ ได้หลากหลาย ซึ่งเป็นได้ทั้ง ตัวเลข หรือตัวอักษร หรือแม้กระทั่งเก็บหลายข้อมูลภายในตัวแปรเดียวได้
x <- "Hello world" # ตัวอักษร
x
## [1] "Hello world"
y <- c(1,2,3,4) # เก็บหลายตัวข้อมูลในตัวแปรเดียว
y
## [1] 1 2 3 4
## [[1]]
## [1] 1 2 3
##
## [[2]]
## [1] 4
##
## [[3]]
## [1] "hello world" "I love R"
class(x) # ท่านสามารถเช็คชนิดของตัวแปรได้โดยใช้ function class()
## [1] "character"
ลักษณะตัวแปรต่างๆ ใน R
มีดังนี้
ชนิด | ตัวอย่าง | คำอธิบาย |
---|---|---|
Numeric |
1 , 2.3 , 5
|
จำนวนจริง รวมทศนิยม |
Integer |
1 , 2 , 3
|
จำนวนเต็ม เป็น subset ของ numeric |
Complex | 1i |
จำนวนเชิงซ้อน |
Character |
"สวัสดี" , "Hello world"
|
ตัวอักษร ต้องอยู่ในเครื่องหมาย ” ” |
Factor |
"a" , "b" , "c"
|
คล้าย character แต่มีจำนวนตัวแปรจำกัด |
Logical |
TRUE , FALSE
|
ตามหลักตรรกศาสตร์ |
Vector | c(1,2,3) |
หลายข้อมูลใน 1 ตัวแปร โดยต้องเป็นตัวแปรชนิดเดียวกัน |
List | list(1, c(1,3,4), "Hello") |
หลายข้อมูลใน 1 ตัวแปร โดยไม่จำเป้นต้องเป็นตัวแปรชนิดเดียวกัน |
Dataframe | data.frame(x = 3, y = 2) |
ตาราง |
ในบางครั้ง Class ที่ R
ทำการเดามาให้ตั้งแต่แรกอาจจะไม่ใช่ลักษณะตัวแปรที่ท่านต้องการ ท่านสามารถใช้ คำสั่ง as.*()
ในการเปลี่ยน Class ของตัวแปรนั้นได้
x <- c(1,2,3,4,5)
class(x) # ไม่ต้องการให้คิดเป็นตัวเลข เช่น ตัวแปรที่จริงแล้วอาจจะเป็น กลุ่ม1 กลุ่ม2
## [1] "numeric"
## [1] "factor"
## $A
## [1] 1 2 3 4 5
##
## $B
## [1] "a" "b" "c" "d" "e"
as.data.frame(x_list) # เปลี่ยนเป็น dataframe
1.3 Matrix and Dataframe
เนื่องจาก R
นั้นเป็นโปรแกรมที่ส่วนมากใช้ในการวิเคราะห์ทางสถิติ ซึ่งเกี่ยวข้อมูลส่วนใหญ่จะถูกเก็บในรูปของตาราง R
จึงมีตัวแปรที่เก็บข้อมูลในรูปของตารางโดยเฉพาะ เรียกวา Matrix และ Dataframe ซึ่งท่านจะใช้เป็นหลักในการวิเคราะห์ข้อมูลใน R
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
class(mat)
## [1] "matrix" "array"
df <- data.frame(x=c(3,4),y=c(2,5),z=c(4,7))
df
class(df)
## [1] "data.frame"
โดยตารางนั้นจะประกอบด้วยสองส่วนหลักๆ คล้าย Excel spreadsheet ได้แก่
- Column (คอลัมน์): คือ ข้อมูลในแนวตั้ง ซึ่งแถวบนสุดจะเป็นชื่อ Column นั้นๆ
- Row (แถว): คือ ข้อมูลในแนวนอน
โดย Matrix นั้น สามารถเก็บ Variable ในรูปแบบเดียวกันได้เท่านั้น แต่ Dataframe สามารถเก็บข้อมูลต่างชนิดร่วมกันได้ โดยมีข้อแม้ว่า Column เดียวกัน จะต้องเป็นข้อมูลชุดเดียวกัน
1.4 Subset
ท่านสามารถดึงข้อมูลแค่บางส่วนออกมาจาก Vector, List, Matrix หรือ Dataframe ได้ เรียกว่าการ Subset
x <- c("a","b","c","d")
x[3] # subset โดยระบุตำแหน่ง
## [1] "c"
x[1:3] # subset หลายตำแหน่ง
## [1] "a" "b" "c"
x[c(1,3)] # subset หลากหลายตำแหน่งแบบจำเพาะ
## [1] "a" "c"
## [[1]]
## [1] 1 2 3
y[[1]] # ดึงข้อมูลที่อยู่ใน list ออกมา
## [1] 1 2 3
ในส่วนของ Matrix และ Dataframe นั้น ท่านสามารถ subset ตามตำแหน่งได้ โดยการระบุ Row และ Column ตามลำดับ
mat
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
mat[1,2] # 1st row, 2nd column
## [1] 3
df
df[1,3] # 1st row, 3rd column
## [1] 4
ในส่วนของ Dataframe นั้น ท่านสามารถ Subset ได้โดยใช้ชื่อของ Column อีกด้วย
df["x"] # subset เป็น column ย่อย
df[["x"]] # subset ข้อมูลที่อยู่ใน column นั้น
## [1] 3 4
df[[2, "x"]] # ระบุแถวด้วย
## [1] 4
df$x # เหมือนกัน df[["x"]]
## [1] 3 4