Function เป็น 1 ใน 2 องค์ประกอบหลักในภาษา R เคียงข้างกับ object
ในขณะที่ object คือ สิ่งที่มีอยู่ในภาษา R, function คือ สิ่งที่เกิดขึ้นในภาษา R
ภาษา R จะทำงานไม่ได้ ถ้าขาดทั้ง 2 อย่างไป
ในบทความนี้ เราจะมีวิธีใช้งาน function ในภาษา R กัน:
- Function คืออะไร?
- ส่วนประกอบของ function
- ประเภทของ function
- การดูรายละเอียดของ function
ถ้าพร้อมแล้ว ไปเริ่มกันเลย
- 🤔 What Is a Function?
- 🧠 Anatomy of Function
- 🗃️ Types of Functions
- ❓ Get Help
- 💪 Summary
- 😺 GitHub
- 📃 References
- ✅ R Book for Psychologists: หนังสือภาษา R สำหรับนักจิตวิทยา
🤔 What Is a Function?
Function คือ code ที่เราเรียกใช้งานซ้ำ ๆ ได้ ซึ่งช่วยให้เราเขียน code ได้ง่ายขึ้น
เช่น แทนที่เราจะหาผลรวมของ 1–5 โดยพิมพ์ตัวเลขทีละตัว:
1 + 2 + 3 + 4 + 5
เราสามารถใช้ function ช่วยได้แบบนี้:
sum(1:5)
และถ้าเราต้องการหาผลลัพธ์ของเลขชุดอื่น (เช่น 15–20) เราสามารถใช้ function เดียวกันได้:
sum(15:20)
จะเห็นได้ว่า function ทำให้เราเขียน code ได้ง่ายและสะดวกขึ้นมาก
🧠 Anatomy of Function
Function ประกอบด้วย 2 ส่วน:
- Name หรือ ชื่อของ function (เช่น
round) - Argument หรือ input สำหรับ function (เช่น
1:5และ15:20)
โดย argument แบ่งได้เป็น 2 ประเภท:
- Positional argument หรือ input ตามตำแหน่งใน function
- Keyword argument หรือ input ตาม keywords
ยกตัวอย่าง เช่น sample() ซึ่งเป็น function สุ่มตัวอย่าง และมี 2 arguments:
- ชุดข้อมูล (เช่น
1:10) - จำนวนที่ต้องการสุ่ม (เช่น
3)
เราสามารถเขียนแบบ positional และ keyword argument ได้แบบนี้:
# Positional arguments
sample(1:10, 3)
# Keyword arguments
sample(x = 1:10, size = 3)
จากตัวอย่าง จะเห็นว่า positional argument เขียนง่ายกว่า แต่ keyword argument ช่วยให้อ่าน code ได้ง่ายกว่า
เราควรใช้ positional argument เมื่อใช้ function ที่ไม่ซับซ้อน เช่น sum() ที่ต้องการแค่ 1 argument
และควรใช้ keyword argument กับ function ที่มีหลาย arguments
🗃️ Types of Functions
Function แบ่งได้เป็น 3 ประเภท ได้แก่:
- Base R function
- Package function
- Custom function
.
📦 Base R Function
Base R function เป็น function ที่มาพร้อมกับภาษา R และเรียกใช้งานได้โดยไม่ต้องติดตั้ง package เพิ่มเติม เช่น:
mean()sum()length()round()seq()
.
📥 Package Function
Package function เป็น function ที่คนอื่นสร้างไว้และเราสามารถโหลดมาใช้ได้
ในการเรียกใช้งาน เราจะต้องทำ 2 อย่างก่อน:
- ติดตั้ง package ด้วย
install.packages()(ทำครั้งแรกครั้งเดียว) - โหลด package ทุกครั้งที่เริ่มต้น session ด้วย
library()
ถ้าข้าม 2 ขั้นตอนนี้ไป เราจะไม่สามารถใช้งาน function ได้
เช่น เรียกใช้ sample_n() เพื่อสุ่มข้อมูลจาก data frame (ตารางข้อมูล):
# Data frame of my friends
friends <- data.frame(
name = c("Alice", "Bob", "Charlie", "David", "Eve", "Frank", "Grace", "Heidi"),
age = c(28, 32, 25, 30, 29, 35, 27, 31)
)
# friends data frame:
# name age
# 1 Alice 28
# 2 Bob 32
# 3 Charlie 25
# 4 David 30
# 5 Eve 29
# 6 Frank 35
# 7 Grace 27
# 8 Heidi 31
# Sample 3 of my friends
sample_n(friends, 3)
ผลลัพธ์:
Error in sample_n(friends, 3) : could not find function "sample_n"
จะเห็นได้ว่า R ส่ง error กลับมา ซึ่งเราแก้ได้โดยติดตั้งและโหลด package ก่อนเรียกใช้งาน sample_n():
# Install package
install.packages("dplyr")
# Load package
library(dplyr)
ซึ่งจะทำให้เราใช้งาน function ได้สำเร็จ:
# Sample 3 of my friends
sample_n(friends, 3)
ผลลัพธ์:
name age
1 Bob 32
2 Heidi 31
3 Grace 27
.
🎁 Custom Function
Custom function เป็น function ที่เราเขียนขึ้นเอง เพื่อตอบโจทย์ที่ function อื่นไม่สามารถทำได้
เราสามารถสร้าง custom function ได้ด้วย function() {} เช่น สร้าง function เพื่อคำนวณพื้นที่วงกลม:
# Custome function to find circle area
circle_area <- function(radius) {
# Calculate area
area <- pi * (radius^2)
# Return area
print(area)
}
ในตัวอย่าง function จะคำนวณพื้นที่วงกลมโดยใช้ 1 argument 1 คือ radius และ print ค่าใน console
หลังจากสร้าง function แล้ว เราสามารถเรียกใช้งาน function ได้เหมือน function อื่น ๆ:
# Calculate circle area where radius is 14
circle_area(14)
ผลลัพธ์:
[1] 615.7522
❓ Get Help
สุดท้าย เราสามารถดูรายละเอียดของ function ได้ 2 วิธี:
?: ดูคู่มือการใช้ functionargs(): ดู argument ของ function
เช่น ดูคู่มือของ round() ซึ่งเป็น function สำหรับปัดจุดทศนิยม:
# Read round() documentation
?round
เราจะเห็นคู่มือการใช้งาน round() ในหน้าต่างของเรา:

หรือดู arguments ของ round():
# Learn about round() arguments
args(round)
ผลลัพธ์:
function (x, digits = 0, ...)
NULL
💪 Summary
ในบทความนี้ เราได้ทำความรู้จักกับ function ซึ่งเป็น 1 ใน 2 องค์ประกอบที่สำคัญในภาษา R กัน:
- Function คือ code ที่สามารถเรียกใช้งานซ้ำได้
- Function ประกอบด้วย 2 ส่วน: name และ argument
- Argument มี 2 ประเภท: positional และ keyword argument
- Function มี 3 ประเภท:
- Base R function ที่มาพร้อมภาษา R
- Package function ที่มากับ packages
- Custom function ที่เราสร้างเอง
- ดูรายละเอียดของ function ได้ด้วย
?และargs()
😺 GitHub
ดูตัวอย่าง code ทั้งหมดในบทความได้ที่ GitHub
📃 References
✅ R Book for Psychologists: หนังสือภาษา R สำหรับนักจิตวิทยา
📕 ขอฝากหนังสือเล่มแรกในชีวิตด้วยนะครับ 😆
🙋 ใครที่กำลังเรียนจิตวิทยาหรือทำงานสายจิตวิทยา และเบื่อที่ต้องใช้ software ราคาแพงอย่าง SPSS และ Excel เพื่อทำข้อมูล
💪 ผมขอแนะนำ R Book for Psychologists หนังสือสอนใช้ภาษา R เพื่อการวิเคราะห์ข้อมูลทางจิตวิทยา ที่เขียนมาเพื่อนักจิตวิทยาที่ไม่เคยมีประสบการณ์เขียน code มาก่อน
ในหนังสือ เราจะปูพื้นฐานภาษา R และพาไปดูวิธีวิเคราะห์สถิติที่ใช้บ่อยกัน เช่น:
- Correlation
- t-tests
- ANOVA
- Reliability
- Factor analysis
🚀 เมื่ออ่านและทำตามตัวอย่างใน R Book for Psychologists ทุกคนจะไม่ต้องพึง SPSS และ Excel ในการทำงานอีกต่อไป และสามารถวิเคราะห์ข้อมูลด้วยตัวเองได้ด้วยความมั่นใจ
แล้วทุกคนจะแปลกใจว่า ทำไมภาษา R ง่ายขนาดนี้ 🙂↕️
👉 สนใจดูรายละเอียดหนังสือได้ที่ meb:

Leave a comment