Written by Siwasit Jitpanu 2/9/2021
เพื่อนๆเคยใช้ Checkboxes ในการเก็บข้อมูลแล้วพบปัญหาการนำข้อมูลไปใช้งานยาก เพราะข้อมูลรวมกันอยู่ Cell เดียวกันบ้างไหม ในบทความนี้เราจะมาแนะนำการใช้โปรแกรม R ในการแปลงข้อมูลจากที่รวมอยู่ใน Cell เดียว ให้แยกออกมาเป็นหลายๆ Rows เพื่อนำไปใช้ Pivot สรุปข้อมูลต่อได้ง่าย ถ้าพร้อมแล้ว ลองทำตาม กันเลย
เพื่อนๆ สามารถเข้าไปดูวิธีติดตั้ง และเรียกใช้งาน Package ได้ที่นี่ คลิก
คำสั่งติดตั้ง และเรียกใช้งาน Package openxlsx
install.packages("openxlsx", dependencies = TRUE)
library(openxlsx)
RawData.xlsx ใช้เป็นข้อมูลสำหรับการลองทำตามบทความนี้ สามารถ Download ได้ที่นี่ คลิก
คำสั่ง unlist(strsplit(Data$CheckBoxes,split = ", "))
Data คือ ชุดข้อมูล
CheckBoxes คือ Column ที่เก็บข้อมูลแบบ CheckBoxes (หลายค่าใน Cell เดียว)
", " คือ ตัวเชื่อมข้อมูลที่ใช้ในการแยก
(Tip : ในกรณีใช้ Google Forms ในการเก็บข้อมูลแบบ CheckBoxes ตัวเชื่อมข้อมูลจะเป็น ", " (มีเว้นวรรคด้วย))
ตัวอย่างการใช้คำสั่ง
hobby <- data.frame(Hobby = unlist(strsplit(RawData$Hobby,split = ", ")))
และกด ctrl+enter หรือ คลิกที่ run
เราจะได้ข้อมูล hobby ที่แยกข้อมูลด้วย ", " จาก Cell ใน Column Hobby ออกมาเป็นหลายๆ Rows
คำสั่ง rep(Data$Dup,sapply(strsplit(Data$CheckBoxes,split = ", "),length))
Data คือ ชุดข้อมูล
CheckBoxes คือ Column ที่เก็บข้อมูลแบบ CheckBoxes (หลายค่าใน Cell เดียว)
Dup คือ Column ที่ต้องการทำซ้ำตามจำนวนข้อมูลใน Column CheckBoxes
", " คือ ตัวเชื่อมข้อมูลที่ใช้ในการแยก
(Tip : ในกรณีใช้ Google Forms ในการเก็บข้อมูลแบบ CheckBoxes ตัวเชื่อมข้อมูลจะเป็น ", " (มีเว้นวรรคด้วย))
ตัวอย่างการใช้คำสั่ง
name <- data.frame(Name = rep(RawData$Name,sapply(strsplit(RawData$Hobby,split = ", "),length)))
และกด ctrl+enter หรือ คลิกที่ run
เราจะได้ข้อมูล name ที่ทำซ้ำตามจำนวนข้อมูลใน Column Hobby เป็นหลายๆ Rows
Data <- data.frame(Name = rep(RawData$Name,sapply(strsplit(RawData$Hobby,split = ", "),length)),Hobby = unlist(strsplit(RawData$Hobby,split = ", ")))
และกด ctrl+enter หรือ คลิกที่ run
เราจะได้ข้อมูล Data ที่แยกข้อมูลใน Column Hobby และทำซ้ำข้อมูลใน Column Name ซึ่งเพื่อนๆ สามารถข้อมูลนำไปใช้งานต่อได้ง่าย