เปรียบเทียบเครื่องมือทำ Data Analysis ยอดฮิต: R ทำอะไรได้บ้าง ที่ Excel ทำไม่ได้

Share on facebook
Share on twitter
Share on linkedin

การทำงานด้านการวิเคราะห์ข้อมูล หรือ Data Analysis เรามีเครื่องมือหนึ่งที่ทรงพลังมาก ๆ และเรียนกันมาตั้งแต่สมัยประถม นั่นคือ Microsoft Excel ครับ

ในโปรแกรม Excel เราสามารถเขียนสมการ, เรียกใช้ฟังก์ชั่นต่าง ๆ, ทำ Pivot Table, เชื่อมต่อฐานข้อมูล, สร้างพลอตสวย ๆ ในคลิกเดียว ฯลฯ ซึ่งจริง ๆ ก็ดูเหมือนว่าฟีเจอร์ครบครันมากแล้ว คนที่มาเริ่มหัดทำ Data Analysis ก็อาจจะสงสัยว่าแล้วทำไมเราถึงต้องไปหัด ภาษาโปรแกรมมิ่งสำหรับงาน Data Science ทั้งหลายด้วย

วันนี้แอดไปอ่านเจอ คนมาตั้งคำถามนี้ใน Quora และเห็นว่าเรื่องนี้มีประโยชน์มาก ๆ สำหรับคนเริ่มต้นเรียน Data Science ก็เลยขอเอามาเล่าให้ฟังกันครับ มาลองดูกันเลยว่าการใช้ R ช่วยปลดล็อกขีดจำกัดของ Excel อย่างไรบ้าง

ขีดจำกัดของ Excel ในการวิเคราะห์ข้อมูล มีอะไรบ้าง

ปัญหาหลัก ๆ ของ Excel คือ

  • เรื่องของจำนวนข้อมูลที่เก็บได้ (Storage)
  • พลังในการประมวลผลข้อมูล (Compute)

สำหรับเรื่องของจำนวนข้อมูลที่เก็บได้ นั้น Excel มีลิมิทอยู่ที่ 1,048,576 แถว และ 16,384 คอลัมน์ ดังตารางด้านล่างจาก เว็บไซต์ Microsoft Office

excel limitation
จะเห็นว่า Excel มีลิมิทจำนวนข้อมูลอยู่ที่ประมาณ 1 ล้านแถว

จริงอยู่ว่าในการใช้งาน Excel โดยปกติ เราไม่ค่อยได้ใช้ถึง 1,000,000 แถวอยู่แล้วครับ (หรือไม่คอมเราก็อาจจะค้างไปก่อน T_T) แต่ปัจจุบันเราต้องใช้ข้อมูลที่เป็น Log หรือ Transaction มากขึ้น ซึ่งข้อมูลพวกนี้อาจจะทะลุ 1 ล้านแถวในเวลาไม่ถึงชั่วโมง เพราะฉะนั้นลิมิทของ Excel ยังไงก็ไม่พอครับ

ต่อมา คือ เรื่อง พลังในการประมวลผลข้อมูล อันนี้ Excel จะใช้ CPU และ RAM ของเครื่องที่รันโปรแกรม Excel ซึ่งทำให้จำกัดขนาดของข้อมูลที่ประมวลผลได้ครับ

แต่อันนี้ก็ว่า Excel คนเดียวไม่ได้ เพราะ R หรือ Python เองก็ทำงานบนทรัพยากรของเครื่องที่รันนี่แหละ แค่ว่าในปัจจุบันมีเครื่องมือช่วยเหลือ เช่น PySpark ที่ทำให้ Python สามารถหยิบยืมพลังการประมวลผลของระบบอื่นได้

R vs Excel: จำนวนข้อมูลที่เก็บ และประมวลผลได้

excel function
สิ่งที่แอดชอบมากของ Excel คือ เราดับเบิ้ลคลิกแล้วแก้ไขข้อมูลได้เลย ใส่สมการก็ยังได้

มาพูดถึง Excel กันก่อนแล้วกันครับ ข้อได้เปรียบของ Excel คือ มี Interface ที่สามารถดูและแก้ไขข้อมูลได้ง่าย ซึ่งมีประโยชน์มากเวลาที่เราอยากให้คนที่ไม่รู้โค้ดมาแก้ไขข้อมูลเองได้ หรือการส่งต่องาน หรือส่ง Report ให้ทีมที่ไม่ได้เขียนโปรแกรมก็สามารถทำได้ง่ายพอเป็น Excel

ส่วนข้อเสียก็อย่างที่บอกไปว่า Excel มีลิมิทการเก็บข้อมูลที่ประมาณ 1 ล้านแถวเท่านั้น

สำหรับ R เราสามารถอ่านข้อมูลเกิน 1 ล้านแถวได้โดยไม่มีปัญหาเลยครับ แต่ถ้าเกิน 5 – 10 ล้านแถวแอดรู้สึกว่าก็มีช้า ๆ เหมือนกัน (ไม่แน่ใจว่าเพราะคอมแอดไม่แรงหรือเปล่า T_T)

ส่วนการแก้ไขข้อมูลใน R (Data Manipulation) ก็อาจจะยากกว่า Excel สำหรับคนที่ไม่มีพื้นฐานโปรแกรมมิ่งครับ เพราะเราต้องเขียนคำสั่งทุกอย่างเลยว่าต้องการแก้ไขแถวไหน คอลัมน์ไหน อย่างไรบ้าง

ของแถม: สำหรับคนที่ใช้ R วิเคราะห์ข้อมูลแล้วเจอปัญหาว่าพอข้อมูลเยอะ ๆ แล้วเริ่มอืด แอดแนะนำให้ลองใช้ data.table package ดูครับ เป็น Library ของ R ที่ปรับวิธีการเก็บข้อมูลและเพิ่มคำสั่งแก้ไขข้อมูลให้เร็วขึ้นเยอะ

R vs Excel: การสร้างโมเดล ทำ Machine Learning

modelling machine learning r
สร้างโมเดล Machine Learning ใน R ด้วยคำสั่งบรรทัดเดียว (Library rpart)

เทรนด์หนึ่งที่ฮอตฮิตในวงการ Data Science มาได้สักพักแล้ว คือ Machine Learning หรือถ้าพูดแบบเฉพาะเจาะจง คือ Deep Learning นั่นเองครับ

เมื่อกี้แอดไปลองเสิร์จว่า Excel ใช้ทำ Deep Learning ได้มั้ย ก็เจอว่า มีคนพยายามทำให้ Excel ทำ Deep Learning ได้ เหมือนกันครับ

อย่างไรก็ตาม ถ้าพูดถึงการสร้าง Model แล้ว การทำใน R ก็สามารถทำได้ง่ายกว่าเยอะ เพราะมี Library ครอบคลุมทุกอย่างที่เราอยากทำ เช่น อยากทำ Deep Learning ก็สามารถทำได้ใน 1 คำสั่ง ด้วย Library H2O

และด้วยความที่ R เป็นภาษาโปรแกรมมิ่ง เลยมีข้อได้เปรียบกว่า Excel ตรงที่ทุกขั้นตอนจะเป็นโค้ดทั้งหมด คนอื่นในทีมสามารถเช็คโค้ดของเราเพื่อตรวจสอบได้ว่ามีการทำอะไรบ้างกว่าจะมาถึงผลลัพธ์ และถ้าต้องการเขียนคำอธิบายโค้ดแบบละเอียดขึ้น เราก็สามารถใช้ RMarkdown ได้อีกด้วยครับ

นอกจากนั้นยังมีเรื่องของการอัพเดท Algorithms ใหม่ ๆ อยู่ตลอด เพราะศาสตราจารย์ในมหาวิทยาลัยส่วนใหญ่มักจะใช้ R กันครับ และพวกเขาก็ดูแล Library ดัง ๆ หลายตัวด้วย อันนี้แอดรู้มาเพราะว่า ได้ไปเรียนวิชา Business Forecasting ซึ่งทีมสอนเค้าเป็นคนอัพเดท Algorithms ใน R เองเลยครับ

R vs Excel: การทำ Data Visualization

recommended chart feature excel
Excel สามารถแนะนำพลอตจากข้อมูลที่เราเลือกให้แบบอัตโนมัติ

Excel มีคำสั่งในการสร้างพลอตที่ง่ายมาก ๆ แค่ เลือกข้อมูล > เลือกประเภทพลอต ก็เสร็จแล้วครับ ซึ่งแอดคิดว่าเหมาะมากถ้าเราต้องการสร้างพลอตพื้นฐาน และถ้าข้อมูลของเราอยู่ใน Excel อยู่แล้ว

ส่วน R ก็มี Library ขึ้นชื่อในการทำ Data Visualization ชื่อว่า ggplot2 ย่อมาจาก Grammar of Graphics ที่เปลี่ยนวิธีคิดในการ Data Visualization ด้วยการเขียนโปรแกรมไปแบบหน้ามือเป็นหลังมือ ไม่ใช่แค่การเรียกฟังก์ชั่นแล้วจบ ไว้เดี๋ยวมีโอกาสแอดจะหยิบมาเล่าให้ฟังกันอีกทีครับ (หรือใครอ่านเจอย่อหน้านี้ก็มาทวงแอดในเพจได้นะ 555+)

ggplot2 example
ggplot2 ใช้สร้าง Chart สีสันสดใสแบบนี้ได้ง่าย ๆ ตัวอย่างจาก RPubs

ท้ายที่สุด สิ่งหนึ่งที่ R ทำได้ดีมาก ๆ คือ การทำ Interactive Data Visualization หรือ พลอตที่ผู้ใช้สามารถเล่นกับพลอตได้ แถมเรนเดอร์ออกมาเป็น Web App จะนำไปสร้าง Dashboard แบบ Real-time ก็ได้ โดยใช้ Library ชื่อว่า Shiny นั่นเองครับ

Shiny ถูกใช้ในบริษัทใหญ่ ๆ มากมาย โดยเฉพาะทีม Data Scientist ที่ใช้ภาษา R เป็นหลักครับ รวมถึงทีมที่แอดเคยเข้าไปทำงานด้วยอยู่ช่วงหนึ่ง ซึ่ง Shiny เป็นเครื่องมือสำคัญที่ทำให้ทีม Data ทำงานร่วมกับทีม Business ได้ง่ายขึ้นเยอะมากเลยครับ

สรุป: R vs Excel ใช้ตัวไหนวิเคราะห์ข้อมูลดี

สำหรับองค์กรที่ข้อมูลยังไม่เยอะ และต้องการความสะดวกในการส่งต่อข้อมูลให้คนอื่นไปใช้ต่อ การใช้ Excel ถือว่าโอเคอยู่ครับ แอดแนะนำว่าถ้าเรายังไม่เจอปัญหาอะไรที่การวิเคราะห์ข้อมูลด้วยโปรแกรมมิ่ง เช่น R หรือ Python สามารถแก้ได้ และเรายังพอใจกับ Excel อยู่ ยังไม่จำเป็นขยับออกจาก Excel ก็ได้ครับ

แต่ถ้ารู้ว่าในอนาคต Excel จะไม่เพียงพอต่อความต้องการของเรา การเตรียมทีมมาสร้างระบบสำหรับรองรับ R หรือ Python ไว้ก็เป็นเรื่องดีครับ เราอาจจะต้องใช้ความสามารถของ Data Engineer เข้ามาช่วยด้วยในส่วนนี้

สำหรับองค์กรใหญ่ ก็จะขึ้นอยู่กับทีมมากกว่าครับ

  • ถ้าเป็นทีมที่ทำด้าน Data โดยเฉพาะ ก็ควรจะใช้ภาษาโปรแกรมมิ่ง เช่น R, Python, หรือภาษาสำหรับดึงข้อมูลอย่าง SQL ไปเลยครับ เพราะจะทำให้ทีมสามารถเข้าถึงความสามารถต่าง ๆ ที่เป็นข้อจำกัดของ Excel
  • ส่วนทีมด้าน Business ถ้าต้องการความคล่องตัวก็เลือกใช้ Excel ต่อได้ครับ เพราะถ้าให้ทุกคนใน Business มาเรียนโปรแกรมมิ่งก็อาจจะไม่คุ้มเสียเวลา

และถ้าใครสนใจเรียน R แอดเคย รวบรวมคอร์ส R ฟรี 6 คอร์ส (มีคอร์สภาษาไทย) มาให้แล้วนะครับ ลองเข้าไปดูกันได้เลย

ใครคิดเห็นอย่างไรกับเรื่องนี้ก็สามารถพูดคุยกันในส่วนคอมเม้นท์ด้านล่างได้เลยครับ หรือมาคุยกันในเพจ Data Science ชิลชิล ก็ได้ อยากอ่านเรื่องอะไรก็มากระซิบบอกแอดมินกันได้ครับผม

Leave a comment

อ่านจบแล้วอยากพูดคุยต่อ? พิมพ์ไว้ตรงนี้ได้เลย แอดมาอ่านทุกอันครับ