Written by Siwasit Jitpanu 4/11/2021
การสรุปข้อมูลสิ่งหนึ่งที่ขาดไม่ได้เลยคือ Pivot Table ในโปรแกรม Excel เพื่อนๆท่านใดได้ลองใช้โปรแกรม R เพื่อทำงานแบบเป็นอัตโนมัติแล้วติดปัญหา สร้าง Pivot Table ไม่ได้ บ้างหรือไม่ ในบทความนี้เราจะมาแนะนำ วิธีการสร้าง Pivot Table โดยใช้โปรแกรม R เพื่อให้เพื่อนๆสามารถใช้โปรแกรม R ในการสรุปข้อมูลได้เหมือนใน Excel ขั้นตอนไม่ยุ่งยาก ถ้าพร้อมแล้ว ลองทำตาม กันเลย
เพื่อนๆ สามารถเข้าไปดูวิธีติดตั้ง และเรียกใช้งาน Package ได้ที่นี่ คลิก
คำสั่งสำหรับติดตั้ง Package แบบตรวจสอบก่อนว่าติดตั้ง Package นั้นๆแล้วหรือยัง
if(!require('tidyr'))install.packages('tidyr')
if(!require('dplyr'))install.packages('dplyr')
if(!require('openxlsx'))install.packages('openxlsx',dependencies=TRUE)
if(!require('reshape2'))install.packages('reshape2')
if(!require('janitor'))install.packages('janitor’)
(Tip : การใช้คำสั่งลักษณะนี้ทำให้สามารถนำ Code ที่เขียนไป Run เครื่องที่ยังไม่เคยติดตั้ง Package ได้เลย)
คำสั่งเรียกใช้งาน Package
library(tidyr)
library(dplyr)
library(openxlsx)
library(reshape2)
library(janitor)
ข้อมูลผู้เสียชีวิตจากอุบัติเหตุทางถนน จากระบบบูรณาการข้อมูลการตายจากอุบัติเหตุทางถนน (3 ฐาน)
สามารถ Donwload และดูรายละเอียดของข้อมูลเพิ่มเติม ได้ที่ https://data.go.th/dataset/rtddi
คำสั่ง Import ข้อมูลจาก เว็บไซต์
df <- read.xlsx('https://data.go.th/dataset/f5804870-7dc2-42df-86f3-769d6cc2ae23/resource/be60ddda-66cf-4d62-8815-63eb5941921a/download/tbl_rtddi_for_opendata.xlsx',detectDates = TRUE)
Data %>% filter(DataFilters=='')
1. Data คือ ข้อมูลที่จะนำมาสร้าง Pivot Table
2. DataFilters คือ Columns ที่ต้องการ Filters ข้อมูลเพื่อนำมาทำ Pivot Table
dcast(Data,DataRow1+DataRow2~DataCol1+DataCol2,fun=Sum,value.var='DataVal')
1. Data คือ ข้อมูลที่จะนำมาสร้าง Pivot Table
3. DataRow1+DataRow2 คือ ตัวแปลที่จะใส่ใน Rows ของ Pivot Table (สามารถ + เพิ่มได้)
4. DataCol1+DataCol2 คือ ตัวแปลที่จะใส่ใน Columns ของ Pivot Table (สามารถ + เพิ่มได้)
5. Sum คือ ฟังก์ชันการคำนวณค่าของ Pivot Table
6. DataVal คือ ข้อมูลที่จะนำมาคำนวน
length : นับจำนวน
sum : รวมค่า
max : ค่าสูงสุด
min : ค่าต่ำสุด
mean : ค่าเฉลี่ย
median : ค่ากลาง
sd : ค่า sd
toString : รวมข้อมูลให้อยู่ใน Cell เดียวตาม row และ column
function(x) length(unique(x)) : นับค่าที่ไม่ซ้ำกันของข้อมูล
Import ข้อมูลจาก เว็บไซต์
df <- read.xlsx('https://data.go.th/dataset/f5804870-7dc2-42df-86f3-769d6cc2ae23/resource/be60ddda-66cf-4d62-8815-63eb5941921a/download/tbl_rtddi_for_opendata.xlsx',detectDates = TRUE)
เลือกข้อมูลบาง Column และ Filter ข้อมูลที่จะนำมาทำ Pivot Table
#เลือกข้อมูลเฉพาะบาง Column มาทำ Pivot Table
Data<-df%>%select(id,DEAD_YEAR,Vehicle,AccProv)
#เลือกข้อมูลเฉพาะบาง Row (Filter เฉพาะ กรุงเทพมหานคร)
Data<-df%>%filter(AccProv=='กรุงเทพมหานคร')
คำสั่งสำหรับสร้าง Pivot Table
Final_Data<-dcast(Data,Vehicle~DEAD_YEAR,fun=length,value.var='id')
คำสั่งสำหรับเพิ่มผลรวม (Total) จาก Pivot Table ที่สร้างไว้
Final_Data_Total<-Final_Data%>%adorn_totals(c('row','col'))
เพียงเท่านี้เราก็จะได้ Pivot Table ในแบบของโปรแกรม R แล้ว