DataRockie

7 เหตุผลทำไมต้องเรียนภาษา R สำหรับงาน Data Science

เพื่อนๆหลายคนที่เพิ่งเริ่มศึกษา data science และการเขียนโปรแกรมเพื่อวิเคราะห์ข้อมูล หลังไมค์มาถามแอดเยอะมาก โดยคำถามส่วนใหญ่ที่ถามมาคือ

  • ทำไมต้องเรียน R?
  • เรียนไปแล้ว ใช้ทำอะไรได้บ้าง?
  • ข้อดี ข้อเสียต่างๆเมื่อเทียบกับ Python เป็นอย่างไร?

เราตอบทุกคำถามที่ได้รับในบทความวันนี้ อ่านจบหวังว่าเพื่อนๆทุกคนจะสนใจอยากเริ่มเขียน R กันเยอะขึ้น เพราะมันคือหนึ่งในภาษาที่ทรงพลังที่สุดสำหรับงาน data science ในยุคนี้


Best for Statistics

ROSS
Ross Ihaka (คนซ้าย) และ Robert Gentleman (คนกลาง) สองผู้พัฒนาภาษา R ในยุคแรก

R ถูกพัฒนาโดย Ross Ihaka และ Robert Gentleman ในปี 1993 ทั้งสองเป็นอาจารย์สอนวิชาสถิติที่ University of Auckland ประเทศนิวซีแลนด์ ภาษา R ได้รับการพัฒนาอย่างต่อเนื่องตลอด 25 ปีที่ผ่านมาจนก้าวขึ้นมาเป็นภาษา top 3 ของโลกสำหรับงาน data science

functions ง่ายๆสำหรับการสรุปผลสถิติใน R เช่น

  • mean, median, min, max, sum สำหรับหาค่าเฉลี่ย ค่าน้อยสุด มากสุด ผลรวม
  • sd, var สำหรับหา standard deviation และ variance
  • cor, lm, glm สำหรับหาค่า correlation, linear และ logistic regression ตามลำดับ

ตัวอย่างการสร้างโมเดลง่ายๆใน R พิมพ์โค้ดแค่ line เดียวก็ได้แล้ว

# linear regression 
lm_model <- lm(mpg ~ ., data = mtcars) 

# logistic regression 
logit_model <- glm(y ~ ., data = dataframe, family = "binomial") 

อธิบาย เราเพิ่งสร้างโมเดลขึ้นมาสองโมเดลชื่อว่า lm_model และ logit_model ส่วนอะไรก็ตามที่อยู่หลังเครื่องหมาย # คือ comment เฉยๆ


Best IDE for Data Science

RStudio คือ IDE หรือภาษาบ้านๆคือโปรแกรม advanced text editor ที่ใช้เขียนภาษา R ที่ดีที่สุดในโลกและมันเกิดขึ้นมาสำหรับงาน data science โดยเฉพาะ

ล่าสุดเวอร์ชั่น 1.2 เราสามารถต่อ RStudio เข้ากับ database และเขียน instant query ผ่าน RStudio ได้เลย SELECT * FROM albums; ชีวิตดีขึ้นเยอะเมื่อมีฟีเจอร์นี้

RStudio ได้รับการพัฒนาอย่างต่อเนื่อง นำทีมโดย data scientist ตำนานของสาย R อย่าง Hadley Wickham Chief Scientist ของ RStudio


Born with DataFrame Capability

R เกิดมาพร้อมกับความสามารถในการวิเคราะห์ DataFrame ซึ่งเป็นหัวใจของการทำงาน data analysis ขั้นพื้นฐาน แค่เปิด RStudio ขึ้นมา ไม่ต้องโหลด package อะไรให้ยุ่งยากก็เริ่มวิเคราะห์ข้อมูลได้เลย ตัวอย่างเช่น code 2 lines ด้านล่าง

# read dataframe into R 
mtcars <- read.csv("mtcars.csv") 
summary(mtcars)

เราใช้ฟังชั่น read.csv() เพื่อโหลดไฟล์ csv เข้าสู่ RStudio และฟังชั่น summary() สำหรับการสรุปผลสถิติเบื้องต้นของ DataFrame ได้ผลแบบนี้

capture1.png

เรายังสามารถทำอะไรกับ DataFrame ได้อีกเยอะมาก ไม่ว่าจะสร้างโมเดลสถิติ ไปจนถึงการทำ machine learning หรือใช้ deep learning framework อย่าง keras


Similar to Excel

การเขียนฟังชั่นใน R เหมือนการเขียนฟังชั่น/สูตรใน Excel มาก จำนวนฟังชั่นทั้งหมดที่มีใน R ณ วันที่ 17 ตุลาคม 2018 ที่เรากำลังเขียนบทความนี้อยู่คือ 2,300,103 functions ครอบคลุมงานสถิติและ data science มากถึง 99.99% ภาษาเดียวครอบจักรวาลไปเลย

แค่เรารู้ว่าชื่อฟังชั่นคืออะไร? ต้องใส่ input ยังไง? หน้าตา output ออกมาเป็นอะไร? ก็เขียน R เป็นแล้ว! ใน R ไม่มีคำว่า “เป็นไปไม่ได้” (Impossible) มีแต่คำว่า “เราจะทำมันได้ยังไง” (How)


World Class Visualization Package

หนึ่งใน package ระดับตำนานของ R language คือ ggplot2 พัฒนาโดย Hadley Wickham และทีมงาน RStudio สามารถทำกราฟแบบ 2D ได้เกือบทุกแบบ

ดาวน์โหลด cheat sheet template การเขียนโค้ด ggplot2 ได้ที่นี่

Rplot02
ตัวอย่าง scatter plot + smooth curve ด้วย ggplot2

gg ในชื่อ ggplot2 ย่อมาจากคำว่า “Grammar of Graphics” ซึ่งเป็นหลักการสำคัญของการทำ visualization ทุกวันนี้เลย


High Demand for R Users

อันนี้สั้นๆ เขียน R เป็นไม่ต้องกลัวตกงาน (อย่างน้อยไปอีก 5-10 ปี จนกว่า AI จะมา disrupt) เงินเดือนเฉลี่ยต่อปีของ R programmer ที่ประเทศอเมริกา อ้างอิงจากเว็บไซต์ indeed (2018)

  • data scientist – $132,548 USD
  • software development – $71,057 USD
  • data analyst – $64,027 USD

นอกจากได้ทำงานที่ชอบ ยังได้เงินเดือนโอเครอีกด้วย ตอนนี้ในประเทศไทยก็กำลังเป็นที่ต้องการสูงมาก 😛


R is Free!

และเหตุผลสำคัญที่สุดที่เราควรเริ่มเขียน R วันนี้คือเราสามารถดาวน์โหลด R และ RStudio มาใช้งานได้ฟรี (open source) ไม่ต้องเสียเงินซักบาท และมีแหล่งเรียนรู้แบบออนไลน์เยอะมาก ไม่ว่าจะเป็น coursera, edx หรือ datacamp

So why not try it today?

สำหรับเพื่อนๆที่สนใจอยากเริ่มเขียน R โรงเรียนออนไลน์ของเพจเรามีสอนเหมือนกัน วีดีโอ full HD ความยาวมากกว่าสองชั่วโมง สมัครเรียนฟรีที่ https://datarockieblog.wordpress.com


Appendix

1-XqY5dUeOPSxI4w4yWBFrZA
ขอบคุณรูปภาพจาก medium R vs. Python (2015)

R vs. Python สองภาษานี้ถูกสร้างมาจาก paradigm ที่ต่างกัน | R ถูกสร้างและพัฒนาโดยนักสถิติ ส่วน Python โดยนักวิทยาศาสตร์คอมพิวเตอร์ ทั้งสองภาษาเป็น high level programming language ทั้งคู่แปลว่าเรียนรู้ง่าย เขียนแป๊ปเดียวก็ทำได้แล้ว

ข้อดีของ R จากประสบการณ์ส่วนตัว คือ

  • เขียนง่าย ใช้งานได้ทันทีโดยไม่ต้องโหลด package เพิ่มเลย
  • ทำงานกับ dataframe ได้ดีมาก (สูสีกับ pandas ของ Python)
  • เหมาะมากกับงานสถิติ (เก่งกว่า Python) ไปจนถึงการสร้าง machine learning (สูสีกับ Python)
  • ฟังชั่นเยอะมาก ครอบคลุมแทบจะทุกสายงาน

ส่วนข้อด้อยของ R เมื่อเทียบกับ Python คือ

  • การแสดงผลภาษาไทยยังไม่ดีเท่าไหร่ งาน NLP (natural language processing) ภาษาไทยส่วนใหญ่เลยไปทำกันใน Python
  • การทำงานกับ matrix หรือ array ตอนนี้ยังสู้ numpy ของ Python ไม่ได้
  • Deep learning framework มีให้เลือกใช้น้อยกว่า Python และนี่เป็นอีกหนึ่งสาเหตุที่คนหันมาใช้ Python กันเยอะมากเลย (deep learning มันป๊อปมากๆช่วงนี้)
  • ตอนนี้คนยังไม่นิยมใช้ R ทำ deployment เท่าไหร่ ตรงนี้ Python จะได้เปรียบกว่า

สุดท้ายเราสรุปสั้นๆตรงนี้ – จะเริ่มเรียนภาษาอะไรก่อนก็ได้ เอาทางที่ตัวเองถนัดเลย พอเขียนภาษาแรกได้แล้ว ภาษาต่อๆไปก็จะง่ายขึ้นเอง เพราะหลักการมันไม่ต่างกันเท่าไร object oriented + high level ทั้ง R และ Python เลย

2 responses to “7 เหตุผลทำไมต้องเรียนภาษา R สำหรับงาน Data Science”

  1. […] 7 เหตุผลที่เราควรเรียน R Programming (ไทย) […]

  2. สวัสดีคะคุณทอย พี่ติดตาม DataRockie มาระยะหนึ่งแล้วคะ เนื่องจากพี่สนใจในอาชีพ Data Visualize Design คะ ปัจจุบัน พี่ไม่มีความรู้พื้นฐานใดๆเลยเกี่ยวกับ Data แต่ตอนนี้เริ่มไปหาหนังสือ The book of R มาอ่านและดู fb คุณทอยที่สอน อยากรบกวนสอบถามคุณทอยเพิ่มเติมว่า นอกจากหนังสือเล่มดังกล่าวแล้ว คุณทอยมีหนังสือแนะนำเกี่ยวกับภาษา R สำหรับผู้เริ่มต้น แนะนำให้อ่านอีกมั้ยคะ ขอบคุณสำหรับคำแนะนำล่วงหน้าคะ

Leave a Reply