2 R function

Function (ฟังก์ชัน) คือ ชุดของคำสั่งที่จะสั่งการให้ R ทำงานตามจุดประสงค์ที่ท่านตั้งไว้ โดยตัวฟังก์ชันนั้น จะประกอบไปด้วย

  • ฟังก์ชันที่มีมาพร้อมกับ R ตั้งแต่ต้น (Base R function)
  • ฟังก์ชันที่ผู้นิพนธ์ท่านอื่นเขียนไว้ และรวบรวมมาเป็น ชุดของ ฟังก์ชัน เรียกว่า Package
  • ฟังก์ชันที่ท่านเขียนขึ้นมาเอง

2.1 Anatomy of function

ฟังก์ชันนั้นประกอบด้วย 4 ส่วน คือ

  1. Function name (ชื่อฟังก์ชัน)
  2. Argument (รายละเอียดของฟังก์ชัน)
  3. Function body (รายละเอียดของฟังก์ชัน)
  4. Return (ผลลัพธ์ของฟังก์ชัน)

ยกตัวอย่างเช่นฟังก์ชัน หาค่าเฉลี่ยของข้อมูล

find_mean <- function(x, y){
  (x + y)/2
}

find_mean(2, 3)
## [1] 2.5
find_mean(3, 5)
## [1] 4

จะเห็นว่า ฟังก์ชันนี้รับข้อมูล 2 ตัวแปร คือ x และ y ซึ่งท่านจะต้องแทนค่าที่ท่านต้องการลงไปใน ฟังก์ชัน หลังจากนั้น ฟังก์ชันจะทำการประมวลผลและส่งผลลัพธ์กลับมา

ในผู้เริ่มต้น ส่วนใหญ่ท่านมักจะไม่ใช้ ฟังก์ชันที่เขียนขึ้นมาเองมากนัก เนื่องจาก Basic operation ส่วนใหญ่จะมีผู้นิพนธ์ขึ้นมาให้แล้ว

2.2 Base R function

Base R function คือ ฟังก์ชันที่ติดกับ R มาตั้งแต่แรก ซึ่งท่านสามารถเรียกใช้ได้เลยโดยไม่ต้องทำการเรียก Package ขึ้นมาก่อน

max(c(1,2,4,5,5,68)) # find max value
## [1] 68
min(c(1,4,5,6,-20)) # find min value
## [1] -20
mean(c(1,2,3,4)) # find mean
## [1] 2.5
median(c(1,2,5,3,4)) # find median
## [1] 3
unique(c(1,1,1,1,2,2,4,5,5,6,7,8)) # display only unique values
## [1] 1 2 4 5 6 7 8

ในส่วนของการ Manipulate dataframe นั้น คำสั่งต่างๆ ที่น่ารู้มีดังนี้

df <- data.frame(x = c(3,3,6,7,8,9),y = c(2,5,8,1,2,3),z = c(4,7,9,4,7,8))
df
head(df, 5) # ดู 5 แถวแรก
tail(df , 5) # ดู 5 แถวล่าง
rowMeans(df) # หาค่า mean แต่ละแถว
## [1] 3.000000 5.000000 7.666667 4.000000 5.666667 6.666667
colMeans(df) # หาค่า mean แต่ละ columns
##   x   y   z 
## 6.0 3.5 6.5
rownames(df) # ชื่อแถว
## [1] "1" "2" "3" "4" "5" "6"
colnames(df) # ชื่อ column
## [1] "x" "y" "z"
table(iris$Species) # สร้างตารางนับจำนวน
## 
##     setosa versicolor  virginica 
##         50         50         50

สามารถดูฟังก์ชันของ Base R ทั้งหมดได้ที่นี่

ถ้าท่านต้องการดูว่าแต่ละฟังก์ชันนั้นใช้งานอย่างไร ให้ใส่เครื่องหมาย ? หน้า ฟังก์ชัน นั้น เช่น ?mean() ?colSums()