เพื่อนๆหลายคนที่เพิ่งเริ่มศึกษา data science และการเขียนโปรแกรมเพื่อวิเคราะห์ข้อมูล หลังไมค์มาถามแอดเยอะมาก โดยคำถามส่วนใหญ่ที่ถามมาคือ
- ทำไมต้องเรียน R?
- เรียนไปแล้ว ใช้ทำอะไรได้บ้าง?
- ข้อดี ข้อเสียต่างๆเมื่อเทียบกับ Python เป็นอย่างไร?
เราตอบทุกคำถามที่ได้รับในบทความวันนี้ อ่านจบหวังว่าเพื่อนๆทุกคนจะสนใจอยากเริ่มเขียน R กันเยอะขึ้น เพราะมันคือหนึ่งในภาษาที่ทรงพลังที่สุดสำหรับงาน data science ในยุคนี้
Best for Statistics

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 ได้ผลแบบนี้

เรายังสามารถทำอะไรกับ 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 ได้ที่นี่

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

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 เลย
Leave a Reply