Data Transformation in R

  1. 5 functions หลักของ dplyr ประกอบด้วย
  2. Example Core Function in dplyr

Data Analyst prefer “LONG format”

Typical workflow ของ data analyst ที่เขียน R คือ

  • ดึงข้อมูลจาก SQL databases หรือ data format ต่างๆเข้าสู่ R
  • เขียน dplyr เพื่อจัดการ data frame จะ merge, join, union, transform
  • ส่ง transformed data ให้ users ของเรา (e.g. csvexceljson) หรือส่งไปให้ software อื่นๆใช้งานต่อ เช่น Power BI, Tableau, Google Sheets, Data Studio

Cr.แอดทอย

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

  • select() ใช้เลือกคอลัมน์
  • filter() Large dataset “filter()” first**
  • mutate() create new column
  • arrange() ใช้sort data
  • summarise() อันนี้เขียนได้สองแบบ summarize()

Example Core Function in dplyr

select() ใช้เลือกคอลัมน์
select(imdb, MOVIE_NAME, RATING)
select(imdb, 1, 5)

select(imdb, movie_name = MOVIE_NAME, 
       released_year = YEAR)
imdb %>%
  select(movie_name = MOVIE_NAME, 
         released_year = YEAR)
filter() ใช้ filter data หรือสร้างเงื่อนไขในการเลือกdata ในSQL ใช้ quary WHERE
mtcars %>%
  filter(disp %in% c(160, 108,225))

imdb %>% 
  select(2, 3, 7) %>%
  filter(score >= 9 & year > 2000)
  
  imdb %>%
  select(movie_name, genre, rating) %>%
  filter(genre == "Drama")#ส่งค่ากลับมาแค่"Drama"อย่างเดียว
  
  imdb %>%
  select(movie_name, genre, rating) %>%
  filter(grepl("Drama", imdb$genre))#ส่งค่าที่มี"Drama"อยู่ร่วมกับคำอื่นด้วย
mutate() create new column
imdb %>%
  mutate(score_group = if_else(score >= 9, "High Rating", "Low Rating"),
         langth_group = if_else(length >= 120, "Long Movie", "Short Movie")) %>%
	select(movie_name, score_group, langth_group)
	
imdb %>%
  select(movie_name, score) %>%
  mutate(score = score + 0.1)#เขียนทับคอลลัมน์เดิมได้
  
 mtcars %>%
  select(hp, wt) %>%
  mutate(hp_double = hp*2,
         hp_halve = hp/2,
         hp_add_five = hp+5,
         new = hp/wt,
         newna = hp+wt)
arrange() ใช้sort data
m%>%
  select(model, am, hp) %>%
  arrange(desc(model))

m %>%
  select(model, am, hp) %>%
  ## "(-)" as descending order(only nummeric)
  arrange(am, -hp)
summarise()
imdb %>%
  summarise(mean_length = mean(length),
            sum_length = sum(length),
            sd_length = sd(length),
            min_length = min(length),
            max_length = max(length),
            n = n())

m %>%
  select(am, hp) %>%
  summarise(avg_hp = mean(hp),
            sum_hp = sum(hp),
            med_hp = median(hp),
            sd_hp = sd(hp),
            var_hp = var(hp),
            n = n())

Comments

Leave a comment