
<aside> 💡 What is data transformation → คือการเปลี่ยน original data ให้อยู่ใน formatที่เราต้องการ
</aside>


🌵 IMDB dataset สำหรับบทเรียนนี้
<aside>
💡 Note - ในวีดีโอนี้ ตอนอ่านไฟล์ csv แอดใช้ฟังก์ชัน read.csv() ซึ่งเป็น based R function นะครับ ถ้าใครอยากใช้ฟังก์ชันที่ใหม่กว่าอย่าง read_csv() ต้องโหลด library readr ก่อนนะครับ
library(readr)
read_csv("filename.csv")
</aside>

dplyr มาพร้อมกับ pipe operator %>% ที่ใช้ในการเขียน pipeline (ตามชื่อของมันเลย) ตัวอย่าง code ด้านล่างทั้งสองแบบได้ผลลัพธ์เหมือนกัน
# load dplyr
library(dplyr)
# select columns
select(mtcars, mpg, wt, hp)
mtcars %>% select(mpg, wt, hp)
🌵 ข้อดีของการเขียน %>% คือเราสามารถเชื่อมฟังก์ชันของเราได้หลาย steps เช่น
df %>% select() %>% filter() %>% mutate() %>% arrange()
## selectcolumns
select(imdb, MOVIE_NAME, RATTING)
select(imdb,1,5) ## select by position
select(imdb,movie_name = MOVIE_NAME,released_year = YEAR ) ## สามารถเปลี่ยนชื่อcolumnได้
## pipe operator
imdb %>%
select(movie_name = MOVIE_NAME, released_year = YEAR ) %>%
head(10)
## filter data
filter(imdb,SCORE >= 9.0) ## สองไลน์นี้ได้ out put เหมือนกัน
imbd %>% filter(SCORE >= 9.0) ##
name(imdb) <- tolower(names(imdb))
imdb %>%
select(movie_name,year,score) %>%
filter(score >= 9 & year > 2000 ) ## ใช้เครื่องหมาย **&** เพื่อเชื่อม **and** condition
imdb %>%
select(movie_name,lenge,score) %>%
filter(score == 8.8 | score == 8.3 | score == 9.0) ## ใช้เครื่องหมาย **|** เพื่อเชื่อม **or** condition
imdb %>%
select(movie_name,lenge,score) %>%
filter(score %in% c(8.3,8.8,9.0)) ## in operator ช่วยให้เขียนโค้ดได้สั้นลง