อยากเริ่มวิเคราะห์ข้อมูลอย่างมืออาชีพต้องเริ่มยังไง?
⭐ Step แรกต้องรู้จักกับ DataFrame กันก่อน
บทความนี้แอดมาเขียนอธิบายพื้นฐานของ dataframe การเขียนโค้ดสร้าง df
และการอ่านไฟล์ประเภทต่างๆเป็น dataframe ด้วยภาษา R แถม pandas
ด้วยท้ายบทความ 555+
Table of Contents
What is DataFrame
DataFrame คือตารางข้อมูล (table-like) แบบสองมิติคือมี columns, rows
- Columns คือ variables หรือตัวแปร
- Rows คือ unit of observation หรือ data points ที่เราเก็บมาวิเคราะห์
จริงๆ dataframe มันคือตารางข้อมูลที่เปิดด้วยโปรแกรม Excel แค่เวลาเราโหลดตารางพวกนี้เข้าไปใน R, Python มันจะกลายเป็น class พิเศษว่า data.frame
<R> หรือ DataFrame
<pandas Python>

Operations พื้นฐานที่เราใช้จัดการกับ dataframe เช่น การเลือกคอลัมน์ สร้างคอลัมน์ใหม่ ฟิลเตอร์ records ที่ต้องการ เรียงข้อมูล สรุปผลข้อมูล และการ join/ merge มากกว่าหนึ่ง dataframes เข้าด้วยกัน
🌵 Skill ในการจัดการ dataframe เรียกว่า Data Transformation/ Data Wrangling เป็นทักษะสำคัญของ Data Analyst ใครเล่นกับ dataframe ได้เก่งเท่าไหร่ ก็ทำงานเสร็จได้ไวขึ้นเท่านั้น
ข้อดีของภาษา R คือเปิดโปรแกรมขึ้นมาก็ทำงานกับ dataframe ได้เลย ไม่จำเป็นต้องติดตั้ง package อะไรเพิ่มเติม ต่างประเทศเรียก R ว่า “Fast data crunching” R
บอกพี่ไม่ได้มาเล่นๆนะครับ ยั๊ง 555+
Create A DataFrame
บทความนี้แอดมาแนะนำวิธีการสร้างและอ่านข้อมูลจากไฟล์ csv
excel
sql
เป็น dataframe ใน R
- สร้าง dataframe จาก vector
- สร้าง dataframe จาก list
- อ่านข้อมูล .csv บน website/ url
- อ่านข้อมูลจากไฟล์ excel
- อ่านข้อมูลจากฐานข้อมูล SQL database
Create dataframe from vector
วิธีที่ง่ายที่สุดในการสร้าง dataframe คือการเรียกใช้ฟังก์ชัน data.frame()
และโยน vectors ที่เราเตรียมไว้ใส่ไปในฟังก์ชันก็เสร็จเลย โดย vectors ต้องมีขนาดเท่ากันทั้งหมด
🌵 R programmers ส่วนใหญ่นิยมประกาศตัวแปรชื่อว่า df
ไว้เรียก dataframe สั้นๆ
# [1] create a dataframe from vector
id <- 1:5
customer_names <- c("Lisa", "Jisoo", "Jenny", "Rose", "Hana")
customer_ages <- c(24, 25, 24, 26, 28)
customer_country <- c("Thailand", "Korea", "Korea", "Korea", "China")
df <- data.frame(id, customer_names, customer_ages, customer_country)
View(df)
ลำดับของ vector ที่ใส่ไปในฟังก์ชัน data.frame()
จะสอดคล้องกับตำแหน่งคอลัมน์ใน df
ที่เราสร้างขึ้นมา

Create datafrom from list
วิธีที่สองคือการสร้าง list
ของ vectors ไว้ก่อน แล้วค่อยส่ง list เข้าไปใส่ฟังก์ชัน data.frame()
ได้ผลลัพธ์เหมือนกับวิธีแรกเลย
# [2] create a dataframe from list
list_data <- list(id, customer_names, customer_ages, customer_country)
df <- data.frame(list_data)
View(df)
Load csv data from internet
ถ้าเรามีข้อมูล csv
file ที่อยู่ในเว็บไซต์ และต้องการโหลดเข้าสู่ R แค่ copy url มาใส่ฟังก์ชัน read.csv()
กดรัน เสร็จเลย ง่ายจนงง 555+ อันนี้แอดเก็บ csv อยู่บน GitHub (Gist) ไว้แชร์โค้ดใส่บทความสะดวกมาก
# [3] load csv data from web
url <- "https://gist.githubusercontent.com/toyeiei/77576fc3b016ea073cb4a2b331cb9584/raw/13f65efcbf230e595fd46f17c791a2d090eb57b1/r_example_dataframe.csv"
df <- read.csv(url)
View(df)
Load data from Excel
สำหรับการอ่านข้อมูลจากไฟล์ Excel ต้องติดตั้ง package readxl
เสร็จแล้วเรียกใช้ฟังก์ชัน read_excel()
ใส่ sheet index หรือ sheet name ที่เราต้องการ
# install.packages("readxl")
library(readxl)
# read data from first and second sheets
sheet1 <- read_excel("data.xlsx", sheet=1)
sheet2 <- read_excel("data.xlsx", sheet=2)
Load data from SQL database
อันนี้เป็น a-must-know-skill สำหรับ data analyst ที่ต้องทำงานกับฐานข้อมูล
ตัวอย่างนี้แอดใช้ package RSQLite
เพื่อต่อไปที่ SQLite .db
file ถ้าเราทำงานกับ databases อื่นๆ สามารถดาวน์โหลด packages ที่ต้องการใช้มาเพิ่ม เช่น DBI, RMySQL, RPostgres, bigrquery เป็นต้น
ใน R เราแบ่งเป็น 3 ขั้นตอนง่ายๆในการทำงานกับ database
- สร้าง connection ไปที่ database
- เขียน SQL query ดึงข้อมูลมาเก็บเป็น dataframe
- ปิด connection
# install.packages("RSQLite")
library(RSQLite)
# create connection
conn <- dbConnect(SQLite(), "company.db")
# get data from tables
emp <- dbGetQuery(conn, "select * from employee")
# disconnect from database
dbDisconnect(conn)
Summarize DataFrame
มาลองดู functions พื้นฐานใน base R ที่ใช้ทำงานกับ dataframe ตัวอย่างนี้แอดใช้ built-in dataframe ชื่อว่า mtcars
(เรียกใช้งานได้เลย ไม่ต้องติดตั้งอะไรเพิ่ม)
ตัวอย่าง code ในวีดีโอนี้ แค่เรารู้จัก functions เยอะขึ้น ก็จะสามารถทำงานกับ dataframe ได้หลายอย่างมากขึ้น ส่วนตัวแอดใช้ R ไม่ต่างกับ Google Sheets หรือ Excel เลย (R เป็นภาษาที่เน้นการใช้งาน functions)
# built in dataframe
df <- mtcars
# basic R functions that work with dataframe
head(df)
tail(df)
str(df)
summary(df)
head()
preview 6 แถวบนสุดtail()
preview 6 แถวล่างสุดstr()
ดูข้อมูล structure ของ dataframesummary()
ใช้สรุปผลสถิติของ dataframe นั้นๆ
🌵 ถ้าใครอยากใช้งาน dataframe เก่งๆ สามารถปรับหน้าตา ทำ data transformation แบบมืออาชีพ ใน R ต้องฝึกใช้ package dplyr ให้คล่อง ส่วน Python ต้องเรียน pandas เพิ่มเติมนะครับ