ในบทความนี้ เรามาความรู้จักกับ package ในภาษา R ที่เรียกว่า dtplyr กัน
- 🏎️ dtplyr คืออะไร?
- 🧑💻 วิธีใช้ dytplyr
- 😺 GitHub
- 📃 References
- ✅ R Book for Psychologists: หนังสือภาษา R สำหรับนักจิตวิทยา
🏎️ dtplyr คืออะไร?
dtplyr เป็น package ที่เชื่อม 2 libraries ยอดนิยมสำหรับ data wrangling เข้าด้วยกัน ได้แก่:
.
Library #1. dplyr ซี่งมี verb-based syntax ที่ใช้งานง่าย
เช่น จาก mtcars dataset เลือกรถเกียร์ manual (am == 1) ที่มี miles/gallon (mpg) ตั้งแต่ 20 ขึ้นไป โดยเรียงจากมากไปน้อย:
# dplyr
mtcars |>
filter(am == 1 & mpg >= 20) |>
select(model, mpg) |>
arrange(desc(mpg))
Note: mtcars ถูกปรับให้มี column ชื่อ model (ดู code ในการเพิ่ม column ได้ใน GitHub)
.
Library #2. data.table ซึ่งมี syntax ที่เข้าใจยากกว่า:
# data.table
mtcars_dt[am == 1 & mpg >= 20, .(model, mpg)][order(-mpg)]
Note: mtcars_dt เป็น dataset ที่ถูกเปลี่ยนจาก data.frame เป็น data.table object เพื่อใช้งานกับ data.table
แต่มีจุดเด่น คือ ประมวลผลได้เร็ว เหมาะกับการทำงานกับ data ขนาดใหญ่
.
dtplyr เชื่อม dplyr เข้ากับ data.table โดยการแปล dplyr syntax ให้เป็น data.table syntax ทำให้เราทำงานได้ง่ายและรวดเร็ว
🧑💻 วิธีใช้ dytplyr
เราสามารถใช้ dtplyr ได้ใน 3 ขั้นตอนง่าย ๆ:
- Install and load
dtplyr - Create a lazy
data.table - Execute the syntax
.
1️⃣ ขั้นที่ 1. Install & Load dtplyr
ในการใช้งาน dtplyr เราต้องเรียกใช้ dplyr ด้วยเสมอ
ดังนั้น ในการติดตั้ง เราต้องติดตั้งทั้ง dtplyr และ dplyr:
# Install
install.packages("dplyr")
install.packages("dtplyr")
เมื่อติดตั้งแล้ว ให้เราเรียกใช้งาน dtplyr และ dplyr ทุกครั้งที่เริ่ม session ในการทำงาน:
# Load
library(dplyr)
library(dtplyr)
Note: คู่มือการใช้ dtplyr แนะนำให้โหลด data.table ด้วย เพื่อใช้ functions ของ data.table ในการทำงาน
.
2️⃣ ขั้นที่ 2. Create a Lazy data.table
หลังเรียกใช้งาน dtplyr ให้เราสร้าง dataset ที่เป็น lazy data.table object ขึ้นมา เพื่อช่วยให้ dtplyr เปลี่ยนคำสั่งของ dplyr เป็นคำสั่งของ data.table ได้:
# Convert mtcars dataset into lazy data.table object
mtcars_ldt <- lazy_dt(mtcars)
.
3️⃣ ขั้นที่ 3. Execute the Syntax
ในขั้นสุดท้าย เราสามารถเริ่มทำงานโดยใช้ syntax ของ dplyr ได้เลย:
# Execute the syntax
mtcars_ldt |>
filter(am == 1 & mpg >= 20) |>
select(model, mpg) |>
arrange(desc(mpg)) |>
as.data.table()
ผลลัพธ์:
model mpg
<char> <num>
1: Toyota Corolla 33.9
2: Fiat 128 32.4
3: Honda Civic 30.4
4: Lotus Europa 30.4
5: Fiat X1-9 27.3
6: Porsche 914-2 26.0
7: Datsun 710 22.8
8: Volvo 142E 21.4
9: Mazda RX4 21.0
10: Mazda RX4 Wag 21.0
จะสังเกตว่า ใน code บรรทัดสุดท้าย เราเพิ่ม as.data.table() เข้ามาเพื่อบอกให้ dtplyr รู้ว่า เราเขียน syntax เสร็จแล้ว และพร้อมให้แปลงให้เป็น data.table syntax
ทั้งนี้ ถ้าเราเขียนโดยไม่มี as.data.table():
# Execute the syntax, without as.data.table()
mtcars_ldt |>
filter(am == 1 & mpg >= 20) |>
select(model, mpg) |>
arrange(desc(mpg))
เราจะได้ผลลัพธ์ที่เป็นแค่ preview ที่ไม่สามารถนำไปใช้งานต่อได้:
model mpg
<chr> <dbl>
1 Toyota Corolla 33.9
2 Fiat 128 32.4
3 Honda Civic 30.4
4 Lotus Europa 30.4
5 Fiat X1-9 27.3
6 Porsche 914-2 26
# ℹ 4 more rows
# ℹ Use `print(n = ...)` to see more rows
ดังนั้น ถ้าเราต้องการผลลัพธ์ทั้งหมด เราต้องใช้ as.data.table() ในการรันคำสั่งทุกครั้ง
Note: เราสามารถใช้คำสั่งอื่น ๆ แทน as.data.table() ได้ โดยจะให้ผลลัพธ์ที่แตกต่างกันไปดังนี้:
| Function | ผลลัพธ์ที่ส่งกลับมา |
|---|---|
as.data.table() | data.table |
as.data.frame() | data.frame |
as.tibble() | tibble |
collect() | tibble |
pull() | Single column |
😺 GitHub
ดู code ทั้งหมดในบทความนี้ได้ที่ GitHub
📃 References
- dtplyr
- Create a “lazy” data.table for use with dplyr verbs
- dtplyr-package: dtplyr: Data Table Back-End for ‘dplyr’
- data.table speed with dplyr syntax: Yes we can!
- Manipulating data in R: a brief benchmark report
✅ 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:
