R-studio : ( EP#17 ) แสดงแผนที่ Thailand Map ด้วยข้อมูลรายได้ Income ด้วยโปรแกรม R และ Excel ร่วมกับ Shapefile
R-studio : ( EP#17 ) แสดงแผนที่ Thailand Map ด้วยข้อมูลรายได้ Income ด้วยโปรแกรม R และ Excel ร่วมกับ Shapefile
เป็นการฝึกปฏิบัติการใช้งานโปรแกรม Excel เพื่อจัดการฐานข้อมูลรายได้ประชากรรายครัวเรือนของแต่ละจังหวัด เพื่อนำมาเชื่อมโยงกับ Shapefile รายจังหวัด ในโปรแกรม R
ลงทะเบียนเพื่อขอตัวอย่างไฟล์ R script ได้ที่
https://docs.google.com/forms/d/e/1FAIpQLScmTzGffy6O51V-E32XN0TMDQHE_I6tJQMn9Rj-G2dVn2pC2g/viewform
🎯 วัตถุประสงค์ของบทเรียน
บทเรียนนี้ออกแบบมาเพื่อให้ผู้เรียน:
- ใช้โปรแกรม R ร่วมกับ Excel และ Shapefile สำหรับการแสดงข้อมูลรายได้ของแต่ละจังหวัดในรูปแบบแผนที่
- เรียนรู้การ เชื่อมโยงข้อมูลตาราง (Join) จาก Excel กับข้อมูลพื้นที่ (Polygon) จาก Shapefile
- สร้าง แผนที่เชิงปริมาณ (Choropleth Map) ด้วยแพ็กเกจ
leaflet
หรือggplot2
เพื่อแสดงระดับรายได้
🗂️ โครงสร้างข้อมูล
จังหวัด | income_avg |
---|---|
กรุงเทพมหานคร | 25,000 |
เชียงใหม่ | 19,000 |
นครราชสีมา | 15,800 |
… | … |
- Excel: มีคอลัมน์
province_name
และincome_avg
- Shapefile: Polygon ของจังหวัด โดยชื่อจังหวัดใน
.shp
ต้องตรงกับ Excel (province_name
)
🧰 แพ็กเกจที่ใช้ใน R
rCopyEditinstall.packages(c("sf", "readxl", "leaflet", "dplyr", "RColorBrewer"))
📜 ตัวอย่าง R Script เบื้องต้น
rCopyEditlibrary(sf)
library(readxl)
library(leaflet)
library(dplyr)
library(RColorBrewer)
# อ่าน shapefile จังหวัด
thai_prov <- st_read("thailand_province.shp")
# อ่านข้อมูลรายได้จาก Excel
income_data <- read_excel("income_by_province.xlsx")
# เชื่อมข้อมูล
thai_income <- thai_prov %>%
left_join(income_data, by = c("province_name" = "province_name"))
# สร้าง color palette
pal <- colorNumeric(palette = "YlOrRd", domain = thai_income$income_avg)
# แสดงแผนที่
leaflet(thai_income) %>%
addTiles() %>%
addPolygons(
fillColor = ~pal(income_avg),
fillOpacity = 0.7,
color = "#333333",
weight = 1,
label = ~paste(province_name, "<br>", "รายได้เฉลี่ย: ", income_avg, "บาท")
) %>%
addLegend(pal = pal, values = ~income_avg, title = "รายได้เฉลี่ย")
📥 ลงทะเบียนเพื่อขอรับ R script ตัวอย่าง
👉 Google Form เพื่อขอไฟล์ตัวอย่าง R script และ Excel
💡 เคล็ดลับเพิ่มเติม
- ใช้
View()
เพื่อตรวจสอบชื่อคอลัมน์ให้ตรงกันก่อนทำjoin
- กรณีชื่อจังหวัดไม่ตรง ให้ใช้
stringr::str_trim()
หรือiconv()
ช่วยจัดการ encoding - หากต้องการ export เป็น HTML: ใช้
htmlwidgets::saveWidget()
เพื่อสร้างไฟล์แผนที่ส่งงาน