18, ก.ค. 2020
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() เพื่อสร้างไฟล์แผนที่ส่งงาน

ใส่ความเห็น

Related Posts