R

รู้จักกับ Data Frame และลองทำ Data Manipulation ง่ายๆใน R

R คือ programming language ที่เกิดมาเพื่อจัดการ data frame และทำงานด้าน data analysis โดยเฉพาะ บทความวันนี้เราจะมาสอนใช้งาน 5 functions ที่ R user ใช้กันทุกวันสำหรับการจัดการ data frame ง่ายๆ

สำหรับเพื่อนๆที่อยากทำตาม tutorial นี้ ต้องลง R และ RStudio Desktop ให้เสร็จก่อน ดาวน์โหลดและใช้งานฟรีทั้งสองโปรแกรมได้ที่ลิ้งนี้เลย R & RStudio

Data Frame คืออะไร?

data frame คือ Excel table ทั่วไปนี้เอง เวลาเรา import เข้าไปใน R เราจะเรียกมันว่า data frame ประกอบด้วย

  • column คือตัวแปรแต่ละตัว
  • row คือ record (observation) เช่น ลูกค้าแต่ละคน หรือ transaction แต่ละอัน เป็นต้น

เปิดโปรแกรม RStudio ขึ้นมา แล้วพิมพ์โค้ดนี้ลงไปใน console View(mtcars) จะเห็นหน้าตาของ built-in dataset ชื่อว่า mtcars data frame หรือจะพิมพ์แค่ mtcars ลงไปใน console เลยก็ได้ ลองซิ!

mtcars
ตัวอย่าง built-in dataframe ใน R (mtcars)

Easy Installation

tutorial วันนี้เราจะสอนใช้ package dplyr ในตำนานของทีมงาน RStudio เพื่อนๆสามารถดาวน์โหลด dplyr มาใช้งานได้ง่ายๆด้วยโค้ด install.packages("dplyr") พอลงเสร็จเรียบร้อยแล้วก็เเรียกใช้งาน dplyr ด้วยคำสั่ง library(dplyr)


Five Verbs to Rule Them All

5 functions หลักของ dplyr ประกอบด้วย

  • select() – ใช้ในการเลือกคอลั่มที่เราต้องการ
  • filter() – ใช้เลือก record (แถว) ด้วยเงื่อนไขที่เราสร้าง
  • arrange() – ใช้เรียงข้อมูลจากต่ำไปสูง (default)
  • mutate() – ใช้สร้างคอลั่มใหม่
  • summarise() – ใช้สรุปผลสถิติเบื้องต้นของคอลั่มใน data frame

ลองดูตัวอย่างการเขียนได้ด้านล่าง ทั้ง 5 functions มี pattern การเขียนเหมือนกันเลย โดย argument แรกของฟังชั่นคือชื่อ data frame ที่เราต้องการ manipulate

## เลือกคอลั่ม mpg, hp, wt จาก mtcars dataframe 
select(mtcars, mpg, hp, wt) 

## สร้างเงื่อนไขในการ filter rows ของ dataframe 
filter(mtcars, hp <= 100) filter(mtcars, am == 0) 

## เรียงข้อมูล by row ใน dataframe ของเราจากต่ำไปสูง 
## หรือเขียน desc(column) เพื่อเรียงจากสูงไปต่ำ 
arrange(mtcars, hp) 
arrange(mtcars, desc(hp)) 

## mutate เพื่อสร้างคอลั่มใหม่ 
mutate(mtcars, hp_half = hp/2) 
mutate(mtcars, wt_double = wt*2) 

## summarise เพื่อสรุปผลสถิติเบื้องต้น เช่น mean, sd, min, max 
summarise(mtcars, mean(hp), sd(hp), min(hp), max(hp))

เพื่อนๆสามารถ copy code ตัวอย่างด้านบนไปลองแปะใน console ของ RStudio ได้เลย ฝึกใช้ 5 verbs นี้ให้คล่อง แล้วการทำงานพื้นฐานกับ data frame จะไม่ใช่เรื่องยากอีกต่อไป


Introducing Pipe Operator

R Programmer จะมีอักขระพิเศษที่ใช้เชื่อมโค้ดของเราเข้าด้วยกัน (ชีวิตดีขึ้นเยอะถ้าใช้ pipe operator %>%) ตัวอย่างการใช้งานง่ายๆแบบนี้

mtcars %>%     
  select(mpg, hp, wt) %>%     
  filter(hp <= 100) %>%     
  arrange(desc(hp)) %>%     
  mutate(hp_2 = log(hp)) 

โค้ดด้านบน เราเชื่อม select %>% filter %>% arrange %>% mutate เข้าด้วยกัน R จะรันผลตั้งแต่ line บนสุดลงมาเรื่อยๆ

result dataframe ที่ได้จากโค้ดด้านบน

อ่านได้แบบนี้ เลือกสามคอลั่ม mpg, hp, wt จาก mtcars data frame แล้วก็ filter เอาเฉพาะรถยนต์ที่มี hp <= 100 แล้วก็เรียงข้อมูลจากสูงไปต่ำ (descending order) ด้วยคอลั่ม hp แล้วค่อยสร้างคอลั่มใหม่ชื่อว่า hp_2 ด้วยฟังชั่น log(hp) จบ !!


More to Learn

  • 5 verbs สำคัญสำหรับ R user เพื่อทำ data manipulation คือ select, filter, arrange, mutate, summarise
  • %>% (pipe operator) ใช้เพื่อเชื่อมโค้ดของเราเข้าด้วยกัน สบายขึ้นเยอะ
  • อ่านเพิ่มเติมเรื่อง A Grammar of Data Manipulation (dplyr)

package dplyr ยังทำอะไรได้อีกเยอะมาก อยากเรียนมากกว่านี้ สมัครเรียนฟรี Intro to R กับเราได้ที่ https://datarockie.com

ชอบกด Like ใช่กด Share ให้เพื่อนได้อ่านด้วยนะคร้าบ

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.