R Foundation: ทำความรู้จักกับภาษา R สำหรับผู้เริ่มต้น – ภาษา R คืออะไร, ต่างกับ Python ยังไง, และเขียนยังไง?

ในบทความนี้ เราจะมาทำความรู้จักภาษา R กัน:

  • ภาษา R คืออะไร?
  • R แตกต่างกับ Python ยังไง?
  • พื้นฐานการเขียนภาษา R

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


  1. ภาษา R คืออะไร?
  2. R vs Python: แตกต่างกันยังไง?
  3. Objects & Functions: โลกทั้งใบของ R
  4. Objects: Existing in R
    1. 📦 (1) Variables: การประกาศตัวแปรใน R
    2. 🍱 (2) Data Types & Classes: ประเภทข้อมูลใน R
    3. 🏠 (3) Data Structures: โครงสร้างข้อมูลใน R
  5. Functions: Happening in R
    1. 🧮 (1) Operators: เครื่องหมายใน R
    2. 🔨 (2) Functions: Action ใน R
  6. Conclusion
  7. Learn More About R
    1. 🧑‍💻 GitHub
    2. 🔨 Free Tool
    3. 📗 Free e-Books
    4. 🏫 Free Courses
  8. References
  9. ✅ R Book for Psychologists: หนังสือภาษา R สำหรับนักจิตวิทยา

ภาษา R คืออะไร?

R เป็นภาษาคอมพิวเตอร์ที่ถูกพัฒนาขึ้นในช่วง ค.ศ. 1990 โดยนักสถิติ 2 ท่านจาก University of Auckland ในนิวซีแลนด์:

  • Ross Ihaka
  • Robert Gentleman

โดยทั้งคู่พัฒนา R เพื่อทำงานกับข้อมูลในห้องแล็บโดยเฉพาะ

และด้วยเหตุที่ R ถูกออกแบบมาเพื่อทำงานกับข้อมูล จึงได้ชื่อว่าเป็น “statistical programming language”

Note: ตัวอักษรแรกของนักพัฒนาเป็นที่มาของชื่อภาษา

“Logo for R” by The R Foundation (from https://www.r-project.org/logo/ under the CC-BY-SA 4.0)

.

เพราะ R เป็นภาษาสำหรับ data จึงเป็นที่นิยมในสายอาชีพ data อย่าง:

  • Data analyst
  • Data scientist
  • Business intelligence analyst
  • Statistician
  • Researcher

.

ในปัจจุบัน (Jan 2025) R ได้รับความนิยมเป็นอันดับ 18 ของโลก (อ้างอิง TIOBE index):

TIOBE index

นอกจากเป็นภาษา data แล้ว R ยังได้รับความนิยม เพราะ:

  • เป็นภาษา open source
  • ผู้ใช้งานสามารถสร้าง package (library) ในการวิเคราะห์ข้อมูลเองได้
  • ผู้ใช้สามารถใช้ package ที่คนอื่นเขียนไว้แล้ว มาวิเคราะห์ข้อมูลได้ (ในปัจจุบัย R มี package ให้เลือกใช้งานมากกว่า 17,000 packages)
  • ใช้งานได้กับหลากหลาย OS เช่น Windows, MacOS, และ Linux

R vs Python: แตกต่างกันยังไง?

ทั้ง R และ Python ต่างได้เป็นที่นิยมในสายงาน data science และมีลักษณะที่คล้ายกัน คือ:

  • เป็นภาษา open source
  • มี community ผู้ใช้งานขนาดใหญ่
  • มี packages ให้เลือกใช้จำนวนมาก

แต่ R และ Python จุดที่แตกต่างกัน คือ:

RPython
เหมาะกับการทำงาน data โดยเฉพาะการวิเคราะห์สถิติเชิงลึกเป็นภาษาสำหรับงานทั่วไป (general-purpose) รองรับการใช้งานหลายประเภทกว่า R

ดังนั้น แม้ว่า R อาจจะสามารถทำงานนอกเหนือจากงาน data ได้ (เช่น web scrapping) แต่อาจจะไม่ดีเท่ากับ Python ที่ถูกออกแบบมาให้ใช้งานทั่วไป

.

Note:

สำหรับคนที่สนใจสายงาน data ควรเลือกศึกษาทั้ง 2 ภาษา

แต่การจะหยิบมาใช้งาน ขึ้นอยู่กับงานตรงหน้า:

RPython
งานวิจัยและการวิเคราะห์ข้อมูลเชิงลึก เช่น สร้างโมเดลทางสถิติ รวมทั้งการสร้างกราฟจากข้อมูลอย่างง่ายงานที่ต้องมีความยืดหยุ่น เช่น machine learning และ AI

หรืองานที่ต้อง integrate กับเครื่องมืออื่น ๆ เช่น web scrapping และ software development

Objects & Functions: โลกทั้งใบของ R

หลังจากทำความรู้จักความรู้จักกับ R เบื้องต้นแล้ว เรามาดูหลักการทำงานของ R กัน

ในการทำงานกับ R เราต้องเข้าใจก่อนว่า ทุกสิ่งที่อยู่ใน R ประกอบด้วย 2 อย่าง ได้แก่:

ObjectFunction
สิ่งที่เก็บใน Rสิ่งที่เกิดขึ้นใน R

นั่นคือ:

  • ทุกสิ่งที่เราสร้างขึ้นใน R จะถูกเก็บอยู่ใน objects (เช่น ตัวแปร, ข้อมูล)
  • Functions เป็นสิ่งที่เรากระทำกับ objects (เช่น การคำนวณ การสร้างกราฟ)

เมื่อเราเข้าใจแล้ว เราสามารถทำความเข้าใจ concepts อื่น ๆ ของ โดยการต่อยอดจาก 2 องค์ประกอบนี้


Objects: Existing in R

ในส่วน objects เรามี 3 สิ่งที่ต้องความเข้าใจ เพื่อทำงานกับ R:

  1. Variables
  2. Data types and classes
  3. Data structures

.

📦 (1) Variables: การประกาศตัวแปรใน R

Variable หรือตัวแปร เป็นเหมือนกล่องเก็บของที่เก็บข้อมูลไว้ให้เรา

เราสามารถสร้างตัวแปรด้วยการใช้ <- เช่น:

x <- 10

อย่างในตัวอย่าง เป็นการสร้างตัวแปร x ที่เก็บค่าตัวเลข 10 เอาไว้

Note: เราสามารถใช้ = แทน <- ได้ แต่ไม่เป็นที่นิยมกัน

.

🍱 (2) Data Types & Classes: ประเภทข้อมูลใน R

ตัวแปรใน R สามารถเก็บข้อมูลได้หลายประเภท (เช่น ตัวเลข ข้อความ)

เราต้องทำความเข้าใจประเภทของข้อมูล เพราะเป็นตัวกำหนด functions ที่เราสามารถใช้ทำงานกับ variable นั้นได้

ยกตัวอย่างเช่น x เก็บตัวแปรประเภทตัวเลข เราจะไม่สามารถใช้ functions ที่ทำงานกับตัวอักษรได้

.

ทั้งนี้ ประเภทข้อมูลใน R มีอยู่ 5 ประเภทที่มักใช้บ่อย ได้แก่:

No.Data TypeExample
1Numeric100
2Character"One hundred"
3LogicalTRUE, FALSE
4Date2025-01-15
5Factor"male", "female", "other"

.

ตัวอย่าง 👇

Numeric:

age <- 10

Character:

name <- "Ben Tennyson"

Logical:

is_hero <- TRUE

Date:

date_of_birth <- as.Date("1995-12-27")

Factor:

gender <- as.factor("Male")

.

Note: เราสามารถเช็กประเภทข้อมูลของตัวแปร ได้ด้วย class() เช่น:

class(age)

ผลลัพธ์:

class()

.

🏠 (3) Data Structures: โครงสร้างข้อมูลใน R

Data structure เป็นการนำข้อมูลมาจัดเรียงเป็นโครงสร้างที่ใหญ่ขึ้น

Data structures เป็นเหมือนอิฐที่ประกอบกันเป็นบ้านหรือตึกใน R

.

โครงสร้างข้อมูลใน R มีอยู่ 5 ประเภท ซึ่งแบ่งได้เป็น 2 กลุ่มตามมิติในการเก็บข้อมูล ดังนี้:

.

กลุ่มที่ 1: เก็บข้อมูลได้ 1 ประเภทเท่านั้น

No.Data Structureการเก็บข้อมูล
1Vector1 มิติ
2Matrix2 มิติ
3Arrayn มิติ

.

ตัวอย่าง 👇

Vector:

v <- c(1, 3, 5, 7, 9)

ผลลัพธ์:

Vector

Matrix:

m <- matrix(1:9, ncol = 3)

ผลลัพธ์:

Matrix

Array:

เช่น array แบบ 3 มิติ:

  • 4 rows
  • 3 columns
  • 2 ชั้น
a <- array(1:24, dim = c(4, 3, 2))

ผลลัพธ์:

Array

.

กลุ่มที่ 2: เก็บข้อมูลได้มากกว่า 1 ประเภท

No.Data Structureการเก็บข้อมูล
1List1 มิติ
2Data frame2 มิติ

.

ตัวอย่าง 👇

List:

เพราะ list สามารถเก็บข้อมูลได้หลายประเภท เราสามารถใส่อะไรลงใน list ก็ได้ (แม้แต่ data structure อื่น ๆ):

grocery_list = list("apple",
                    "milk",
                    TRUE,
                    250,
                    c(1, 3, 5, 7, 9),
                    list("Walmart", "Target"))

ผลลัพธ์:

List

Data frame:

สำหรับ data frame เราสามารถสร้างได้จากเชื่อม vectors เข้าด้วยกัน:

groceries <- data.frame(
  Item = c("Apples", "Carrots", "Milk"),
  Category = c("Fruit", "Vegetable", "Dairy"),
  Quantity = c(5, 2, 1),
  Price = c(1.50, 0.75, 2.50)
)

ผลลัพธ์:

Data frame

.

Note: สำหรับใครที่นึกภาพโครงสร้างข้อมูลไม่ออก สามารถดู Figure 5.6 ในหนังสือ Hands-On R Programming เพื่อช่วยไขข้อสงสัยได้


Functions: Happening in R

สำหรับ functions เรามี 2 สิ่งที่ต้องทำความเข้าใจ ได้แก่:

  1. Operators
  2. Functions

.

🧮 (1) Operators: เครื่องหมายใน R

Operators เป็นเครื่องหมาย เพื่อบอก R ว่าเราต้องการทำงานหรือการคำนวณอะไร

.

Operators แบ่งออกเป็น 4 ประเภท ได้แก่:

No.OperatorForSymbols
1Assignmentสร้าง variable<-
=
2Arithmeticคิดเลข+
-
*
/
3Logicalคิดตรรกะ&
|
!
4Relationalเปรียบเทียบค่า==
!=
>
<
>=
<=

.

ตัวอย่าง 👇

Assignment

เช่น สร้างตัวแปรเก็บชื่อ “John”:

my_name <- "John"

Arithmetic

เช่น คิดเลข 3 + 4:

3 + 4

Logical

เช่น not TRUE:

!TRUE

Relational

เช่น เช็กว่า 15 มากกว่า 11 ไหม:

15 > 11

.

🔨 (2) Functions: Action ใน R

Functions คือ code ที่เราสามารถนำกลับมาใช้ใหม่ได้ (reusable)

.

Functions แบ่งออกเป็น 2 ประเภท ได้แก่:

No.FunctionDescriptionExample
1Built-inFunctions ที่มาพร้อม R หรือ packages ที่เราโหลดมาใช้งานprint()
sum()
str()
2User-definedFunctions ที่เราสร้างเองสร้าง function ชื่อ hello() เพื่อทักทาย user

.

Note:

สำหรับ user-defined functions เราสามารถสร้างได้โดยใช้ function() เช่น:

greeting <- function(name) {
  print(paste("Hello", name))
}

ถ้าเราเรียกใช้งาน greeting() โดยใส่ "John" ใน ():

greeting("John")

เราจะได้ผลลัพธ์แบบนี้:

User-defined function

Conclusion

ในบทความนี้ เราได้ทำความรู้กับภาษา R กัน:

  • R เป็นภาษาสำหรับงาน data
  • ทั้ง R และ Python ใช้กับงาน data ได้
    • R เหมาะกับการวิเคราะห์เชิงลึก
    • Python เหมาะกับงานทั่วไป
    • คนที่สนใจงานสาย data ควรเรียนทั้ง 2 ภาษา
  • ทุกอย่างใน R แบ่งเป็น objects และ functions
  • Objects: สิ่งที่เก็บใน R
    • Variables: เก็บข้อมูล
    • Data types and classes: กำหนด functions
    • Data structures: ประกอบร่างข้อมูล
  • Functions: สิ่งที่เกิดขึ้นใน R
    • Operators: เครื่องหมายในการทำงาน
    • Functions: code ที่นำกลับมาใช้ใหม่ได้

Learn More About R

.

🧑‍💻 GitHub

สำหรับผู้ที่สนใจ สามารถดู code ตัวอย่างในบทความนี้ได้ที่ GitHub

.

🔨 Free Tool

เริ่มทดลองเขียน R ด้วยตัวเอง ผ่าน RStudio

ดาวน์โหลด R

RStudio desktop

Note: ใช้งานฟรีทั้งแบบ desktop และ online

.

📗 Free e-Books

ใครที่สนใจเรียนรู้เกี่ยวกับ R เพิ่มเติม สามารถอ่านหนังสือ e-book เหล่านี้ได้ฟรี:

.

🏫 Free Courses

สำหรับคนที่สนใจเรียนการเขียน R สามารถศึกษาคอร์สเรียนเหล่านี้ได้:


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