Function in R: ความหมาย, ส่วนประกอบ, และประเภท function ในภาษา R สำหรับผู้เริ่มต้น พร้อมตัวอย่าง

Function เป็น 1 ใน 2 องค์ประกอบหลักในภาษา R เคียงข้างกับ object

ในขณะที่ object คือ สิ่งที่มีอยู่ในภาษา R, function คือ สิ่งที่เกิดขึ้นในภาษา R

ภาษา R จะทำงานไม่ได้ ถ้าขาดทั้ง 2 อย่างไป

ในบทความนี้ เราจะมีวิธีใช้งาน function ในภาษา R กัน:

  1. Function คืออะไร?
  2. ส่วนประกอบของ function
  3. ประเภทของ function
  4. การดูรายละเอียดของ function

ถ้าพร้อมแล้ว ไปเริ่มกันเลย


  1. 🤔 What Is a Function?
  2. 🧠 Anatomy of Function
  3. 🗃️ Types of Functions
    1. 📦 Base R Function
    2. 📥 Package Function
    3. 🎁 Custom Function
  4. ❓ Get Help
  5. 💪 Summary
  6. 😺 GitHub
  7. 📃 References
  8. ✅ 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 ส่วน:

  1. Name หรือ ชื่อของ function (เช่น round)
  2. Argument หรือ input สำหรับ function (เช่น 1:5 และ 15:20)

โดย argument แบ่งได้เป็น 2 ประเภท:

  1. Positional argument หรือ input ตามตำแหน่งใน function
  2. Keyword argument หรือ input ตาม keywords

ยกตัวอย่าง เช่น sample() ซึ่งเป็น function สุ่มตัวอย่าง และมี 2 arguments:

  1. ชุดข้อมูล (เช่น 1:10)
  2. จำนวนที่ต้องการสุ่ม (เช่น 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 ประเภท ได้แก่:

  1. Base R function
  2. Package function
  3. Custom function

.

📦 Base R Function

Base R function เป็น function ที่มาพร้อมกับภาษา R และเรียกใช้งานได้โดยไม่ต้องติดตั้ง package เพิ่มเติม เช่น:

  • mean()
  • sum()
  • length()
  • round()
  • seq()

.

📥 Package Function

Package function เป็น function ที่คนอื่นสร้างไว้และเราสามารถโหลดมาใช้ได้

ในการเรียกใช้งาน เราจะต้องทำ 2 อย่างก่อน:

  1. ติดตั้ง package ด้วย install.packages() (ทำครั้งแรกครั้งเดียว)
  2. โหลด 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 วิธี:

  1. ?: ดูคู่มือการใช้ function
  2. args(): ดู 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 กัน:

  1. Function คือ code ที่สามารถเรียกใช้งานซ้ำได้
  2. Function ประกอบด้วย 2 ส่วน: name และ argument
  3. Argument มี 2 ประเภท: positional และ keyword argument
  4. Function มี 3 ประเภท:
    1. Base R function ที่มาพร้อมภาษา R
    2. Package function ที่มากับ packages
    3. Custom function ที่เราสร้างเอง
  5. ดูรายละเอียดของ 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:

Comments

Leave a comment