Excel R

ภาษา R พื้นฐานสำหรับ Excel Users

R เป็นหนึ่งในภาษาที่ได้รับความนิยมสูงมากสำหรับงาน data science เรียนรู้ง่าย ทำงานได้รวดเร็ว เกิดมาพร้อมกับความสามารถด้านสถิติ (ภาษาอังกฤษ เราเรียก R ว่า fast data crunching language)

R เหมาะสำหรับคนที่ใช้ Excel ในการทำงานอยู่แล้ว ถ้าอยากจะเริ่มเขียนโปรแกรม แอดแนะนำ R เป็นภาษาแรกเพราะ logic ในการทำงานของเครื่องมือสองตัวนี้คล้ายกันมาก (การเรียกใช้งานฟังชั่นเหมือนกันเกือบ 100%)

บทความนี้จะเปรียบเทียบความเหมือน/ แตกต่างของทั้งสองโปรแกรม และอธิบายการทำงานเบื้องต้นของ R ให้กับ Excel users ได้เข้าใจ ไม่ต้องเคยเขียนโปรแกรมมาก่อน ก็อ่านรู้เรื่อง ทำตามได้เลย 😛

Getting Software

สำหรับเพื่อนๆที่อยากทำตาม tutorial วันนี้ต้องติดตั้งโปรแกรมฟรีสองตัวคือ R และ RStudio Desktop ติดตั้งเสร็จแล้วเปิดโปรแกรม RStudio ขึ้นมา และเริ่มเขียนโค้ดในหน้าต่าง console ตามตัวอย่างด้านล่างได้เลย

คลิกที่รูปเพื่อขยาย หรือเปลี่ยนความละเอียดเป็นแบบ HD

นักเรียนสามารถดาวน์โหลดไฟล์ csv สำหรับบทความนี้ได้ที่นี่

ข้อมูล example_data.csv มีทั้งหมด 6 columns x 100 rows

R Works Like Excel

สำหรับเพื่อนๆที่ใช้ Excel เป็นอยู่แล้ว (รู้ว่า Excel function และ formula คืออะไร?) สามารถเริ่มเขียนภาษา R ได้ง่ายๆ เพราะวิธีการทำงานของทั้งสองโปรแกรมนี้เหมือนกันโดยเฉพาะการใช้งาน functions

output = function( input1, input2, input3, … )

ตารางเปรียบเทียบการเขียนฟังชั่นใน Excel vs. R สิ่งที่แตกต่างกันอย่างแรกคือ Excel เก็บข้อมูลใน spreadsheets เช่น cell A1:A10 แต่ R เก็บข้อมูลด้วยตัวแปร (variable) เช่น ตัวแปร x มีค่าเท่ากับ 1:10

ExcelR Programming
=AVERAGE(A1:A10)mean(x)
=STDEV.S(A1:A10)sd(x)
=SUM(A1:A10)sum(x)

Tip – สิ่งแรกที่ Excel Users ทุกคนต้องรู้คือ R เป็นภาษาแบบ case sensitive แปลว่าตัวพิมพ์ใหญ่/ ตัวพิมพ์เล็กมีผลกับการรันโค้ด R เขียนผิดนิดเดียวโค้ดจะรันไม่ออกเลย (error)

Read CSV File

มาลอง import csv file เข้าโปรแกรม RStudio กันก่อน

  • Unzip ไฟล์ .zip ที่ดาวน์โหลดมาไปวางไว้ที่ path ของฟังชั่น getwd() i.e. working directory
  • เสร็จแล้วใช้ฟังชั่น read.csv() เพื่อ import “example_data.csv” ไปเก็บไว้ที่ตัวแปร df ใน R (ชื่อตัวแปรจะตั้งว่าอะไรก็ได้ แต่แอดแนะนำให้ตั้งชื่อแบบเข้าใจง่าย และเป็นตัวพิมพ์เล็กทั้งหมด)

พอ import ไฟล์ข้อมูลเสร็จแล้ว เราสามารถเรียกดู structure ของ dataframe ด้วยฟังชั่น str() หรือจะแสดงผล 6 แถวแรกของ dataframe ใน console ด้วยฟังชั่น head()

Tip – R เก็บข้อมูลตัวแปรต่างๆใน RAM ถ้าข้อมูล csv ของเรามีขนาด 500mb R ก็จะจัดสรร RAM 500mb บวกลบนิดหน่อยเพื่อเก็บข้อมูลนี้ i.e. อะไรที่อยู่บน RAM ก็จะทำงานได้เร็วขึ้น นี่คือเหตุผลที่ R วิเคราะห์ข้อมูลได้เร็วกว่า Excel มาก โดยเฉพาะเวลาข้อมูลมีขนาดใหญ่กว่า 1,000,000 records

Basic Statistics

R ถูกพัฒนาขึ้นมาสำหรับการวิเคราะห์ผลสถิติโดยเฉพาะ ถ้าต้องการหาค่าเฉลี่ยของคอลัมน์ age ใน df เราจะเขียน syntax แบบนี้ mean(df$age) ลองดูตัวอย่างฟังชั่นอื่นๆด้านล่าง mean, median, sd และ sum

Tip – เราใช้ $ เพื่อเลือกคอลัมน์ที่เราต้องการจาก data frame

If-else

การเขียนเงื่อนไขใน R จะใช้ฟังชั่น ifelse() โดย syntax จะเหมือนกับฟังชั่น IF() ของ Excel โดยฟังชั่นนี้จะรับ 3 inputs ดังนี้ ifelse(condition, TRUE, FALSE) คลิปด้านล่าง แอดใช้ฟังชั่น ifelse เพื่อสร้างคอลัมน์ใหม่ชื่อว่า age_group เพิ่มไปที่ df และใช้ฟังชั่น table() เพื่อสร้างตารางความถี่ของคอลั่มใหม่

ExcelR Programming
=IF(gpa>=25, “Senior”, “Junior”)ifelse(df$gpa >= 25, “Senior”, “Junior”)

Install New Packages

เราสามารถดาวน์โหลดและติดตั้ง package (functions) ใหม่ๆ เพื่อเพิ่มความสามารถของ R ใน laptop ของเราด้วยฟังชั่น install.packages() พอติดตั้งเสร็จแล้ว เรียกใช้งาน package นั้นๆด้วยฟังชั่น library()

Data Transformation

package ที่เราเพิ่งติดตั้งชื่อว่า dplyr เป็น package หลักสำหรับทำ data transformation เช่น การเลือกคอลัมน์ (select) ฟิลเตอร์ข้อมูล (filter) หรือสุ่มตัวอย่าง (sample_n) เป็นต้น โค้ดด้านล่างเราใช้ pipe operator (%>%) เป็น syntax มาตรฐานที่ช่วยให้เราเขียนโค้ด R ได้ง่ายขึ้น อย่างเช่นโค้ด line 6-8 เราเลือกคอลัมน์ id, student_name, gender เสร็จแล้วฟิลเตอร์ข้อมูลให้แสดงเฉพาะผู้ชาย gender == “M”

Tip – หลัง %>% เรานิยมเคาะ enter หนึ่งครั้งเพื่อขึ้นบรรทัดใหม่ df %>% select() %>% filter() เป็นเทคนิคการเขียนเชื่อมโค้ดเราเข้าด้วยกันใน R (เรียกว่า chained functions)

Pivot Table

Pivot Table คือการหมุนวิเคราะห์ข้อมูลง่ายๆ เช่น การนับจำนวนความถี่ (n) ของแต่ละกลุ่ม หรือคำนวณค่าสถิติแยกตามกลุ่ม เป็นต้น ตัวอย่างด้านล่างเราใช้ฟังชั่น count() เพื่อสร้างตารางความถี่ i.e. count values ของคอลัมน์ที่เราต้องการ หรือใช้ syntax df %>% group_by() %>% summarise() เพื่อคำนวณค่าสถิติแยกตามกลุ่ม

VLOOKUP

Excel ใช้ฟังชั่น VLOOKUP() เพื่อดึงข้อมูลจากตารางที่เราต้องการด้วย lookup value (ดูตัวอย่างการเขียน vlookup ได้ที่นี่) ส่วน R ใช้ฟังชั่น left_join() ของ dplyr เพื่อดึงข้อมูลจากสองตารางพร้อมๆกัน ได้ผลเหมือนกับการเขียน vlookup แต่ยืดหยุ่นและใช้งานง่ายกว่า ลองดูตารางเปรียบเทียบ syntax ด้านล่าง

ExcelR Programming
=VLOOKUP(value, table, col_index, FALSE)left_join(table1, table2, by = “id”)

Visualization

R มีความสามารถในการทำ visualization ได้หลายรูปแบบโดยเฉพาะ 2D graphics โค้ดด้านล่างเราลองสร้างกราฟ histogram, bar plot และ scatter plot ตามลำดับ ลองดู gallery แบบเต็มๆได้ที่นี่

Summary

Tutorial นี้รีวิวฟังชั่นพื้นฐานใน R สำหรับวิเคราะห์ข้อมูลเบื้องต้น และเปรียบเทียบความเหมือน/ แตกต่างระหว่าง Excel vs. R

  • R ทำงานกับข้อมูลขนาดใหญ่ได้เร็วกว่า Excel เพราะว่าเก็บข้อมูลบน RAM/ memory
  • import csv file เข้าสู่โปรแกรม RStudio ด้วยฟังชั่น read.csv()
  • คำนวณค่าสถิติง่ายๆด้วยฟังชั่น mean(), median(), sd() และ sum()
  • เขียนเงื่อนไขด้วยฟังชั่น ifelse()
  • ติดตั้งและเรียกใช้งาน package ใหม่ใน R ด้วยฟังชั่น install.packages() และ library()
  • สร้าง Pivot Table ง่ายๆสไตล์ R ด้วยฟังชั่น count(), group_by() และ summarise()
  • เขียน vlookup สองตารางด้วยฟังชั่น left_join()
  • สร้าง basic visualization ด้วยฟังชั่น hist(), barplot() และ plot()

Appendix – Simulated Data

ด้านล่างเป็น R code ที่แอดใช้สร้าง example_data.csv และ lookup_table.csv ที่สอนในบทความนี้ ข้อดีของ R คือความง่ายในการ simulate new dataset ด้วยฟังชั่นพื้นฐานอย่าง sample() หรือ rnorm() ถ้าใครอยากเรียน R แบบเต็มๆ เข้าเรียนฟรี Data Analyst Bootcamp (R Track) ได้ที่นี่

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.