นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

Our Shangri-La
Ico64
Kittisakdi Choomalee

ภาควิชาเวชศาสตร์ชุมชน คณะแพทยศาสตร์ มหาวิทยาลัยสงขลานครินทร์
Network
Members · Following: 0 · Followed: 16

อ่าน: 1994
ความเห็น: 1

ก้าวย่างทางเดิน ลืมเลือนคืนวัน ดั้นด้นไป: เรื่องเล่าจาก research club - ๓

เรื่องเล่าจาก research club ตอนที่ ๓: สร้างปิรามิดประชากร

นอกเหนือจากที่เราจะใช้ฟังก์ชัน pyramid() จาก package epicalc สำหรับสร้างปิรามิดประชากรแล้ว ฟังก์ชันที่ใช้สร้างปิรามิดประชากรใน R ยังมีอีกหลายฟังก์ชัน

แต่ไม่ว่าจะเป็นฟังก์ชันจาก package ไหนก็ตาม ฟังก์ชันการสร้างปิรามิดประชากรนั้นมีพื้นฐานมาจากฟังก์ชัน barplot() ที่เป็นฟังก์ชันสำหรับสร้างแผนภูมิแท่งใน R base นั่นเอง

 

ดังนั้นหากท่านผู้อ่าที่รักท่านใดมีความเชี่ยวชาญ ก็สามารถสร้างปิรามิดประชากรได้โดยใช้ฟังก์ชัน barplot() ใน R base ได้เลย

 

แต่ในครั้งนี้เราจะใช้ฟังก์ชัน pyramid.plot() จาก package plotrix สำหรับสร้างปิรามิดประชากรกันครับ

 

แต่ก่อนที่จะเรียกใช้ฟังก์ชัน pyramid.plot() ได้นั้นต้องทำการติดตั้ง package plotrix ก่อน

 

หลังจากติดตั้ง package plotrix แล้ว ทำการโหลด package plotrix เข้าสู่หน่วยความจำด้วยฟังก์ชัน library()

 

> library(plotrix)

 

รูปแบบการใช้งานฟังก์ชัน pyramid.plot()

> help(pyramid.plot)

pyramid.plot(lx,rx,labels=NA,top.labels=c("Male","Age","Female"),
  main="",laxlab=NULL,raxlab=NULL,unit="%",lxcol,rxcol,gap=1,
  ppmar=c(4,2,4,2),labelcex=1,add=FALSE,xlim,show.values=FALSE,ndig=1,
  do.first=NULL)

 

ข้อมูลที่ต้องใส่ให้กับฟังก์ชัน pyramid.plot() คือ ค่า lx และ rx ซึ่งก็คือข้อมูลจำนวนประชากรที่จำแนกตามกลุ่มอายุเรียบร้อยแล้วโดยที่ lx คือข้อมูลที่ต้องการให้อยู่ด้านซ้ายมือ และ rx คือข้อมูลที่ต้องการให้อยู่ด้านขวามือ

 

ข้อมูล lx และ rx อาจจะอยู่ในรูปของ vector, matrix หรือ data frame (กรอบข้อมูล) ก็ได้

 

โดยทั่วไปแล้วจะนิยมให้ข้อมูลของเพศชายอยู่ทางซ้ายมือหรือเป็น lx ส่วนข้อมูลของเพศหญิงจะอยู่ทางขวามือหรือเป็น rx

 

ตัวเลือกอื่น ๆ ที่สำคัญคือ

  • labels=NA ป้ายช่วงอายุสำหรับแสดงช่วงอายุในปิรามิดประชากร ค่าเริ่มต้นจะกำหนดให้เป็น NA หรือไม่ได้กำหนด
  • top.labels=c("Male","Age","Female")  กำหนดป้ายคำอธิบายด้านบน ในที่นี้จะกำหนดให้เป็น Male, Age, Female เป็นค่าเริ่มต้น
  • main="" กำหนดชื่อของปิรามิดประชากร คี่าเริ่มต้นจะไม่กำหนดชื่อให้กับปิรามิดประชาการหรือ main="" นั่นเอง
  • unit="%" ป้ายแกนนอน ค่าเริ่มต้นกำหนดให้เป็น "%"
  • lxcol กำหนดสีสำหรับข้อมูลทางซ้ายมือ (เพศชาย) ของปิรามิดประชากร
  • rxcol กำหนดสีสำหรับข้อมูลทางขวามือ (เพศหญิง) ของปิรามิดประชากร
  • gap=1 ระยะห่างระหว่างข้อมูลเพศชายและเพศหญิง หรือช่องว่างตรงกลางปิรามิดประชากร

 

จากข้อมูลตัวอย่างในบันทึกที่แล้วที่เป็นข้อมูลประชากรของประเทศไทยปี พ.ศ. ๒๕๕๕ ที่จำแนกตามเพศชาย หญิง และกลุ่มอายุไว้เรียบร้อยแล้ว และถูกจัดเก็บไว้ในกรอบข้อมูล thpop55 ใน work space ของ R

 

ดังนั้นค่า

  • lx ก็คือจำนวนประชากรเพศชายที่จำแนกตามกลุ่มอายุหรือค่าจากตัวแปร male ในกรอบข้อมูล thpop55 (thpop$male)
  • rx ก็คือจำนวนประชากรเพศหญิงที่จำแนกตามกลุ่มอายุหรือค่าจากตัวแปร female ในกรอบข้อมูล thpop55 (thpop$female)

 

สำหรับการสร้างปิรามิดประชากรด้วยฟังก์ชัน pyramid.plot() ของ package plotrix นี้เรากำหนดค่าตัวเลือกต่าง ๆ เพิ่มเติมดังนี้ครับ

  • กำหนดป้ายคำอธิบายช่วงอายุโดยใช้ค่าจากตัวแปร agegroup ของกรอบข้อมูล thpop55 หรือกำหนดตัวเลือกเป็น labels=thpop55$agegroup
  • กำหนดป้ายคำอธิบายแกนนอนเป็น "Freq" หรือกำหนดตัวเลือกเป็น unit="Freq"
  • กำหนดป้ายคำอธิบายด้านบนเป็น "Male", "Age group" และ "Female" หรือกำหนดตัวเลือกเป็น top.labels=c("Male","Age group","Female"))

 

บรรทัดคำสั่ง

 

> pyramid.plot(thpop55$male, thpop55$female, labels=thpop55$agegroup, unit="Freq", top.labels=c("Male", "Age group", "Female"))
[1] 4 2 4 2

 

หลังจากใช้บรรทัดคำสั่งข้างต้นพบว่า R จะใช้เวลาค่อนข้างนานในการสร้างปิรามิดประชากร เมื่อผ่านไปครู่ใหญ่ ก็จะได้ปิรามิดประชากรดังรูป

 

 

เราจะพบว่าช่องว่างตรงกลางระหว่างข้อมูลของเพศชายและเพศหญิงหายไป กลายเป็นเส้นสีดำทึบ ๆ แทน และป้ายคำอธิบายกลุ่มอายุนั้นจะโดนบังด้วยแท่งกราฟ และแกนนอนจำเป็นเส้นทึบสีดำขนาดใหญ่

 

อาการดังกล่าวเป็นผลจากข้อบกพร่องของฟังก์ชัน pyramid.plot() เอง หากจะแก้ไขให้ได้ปิรามิดประชากรที่มีลักษณะเดียวกับปิรามิดประชากรที่สร้างด้วยฟังก์ชัน pyramid() ของ package epicalc นั้นจะต้องกำหนดตัวเลือกเพิ่มเติม

 

ค่าตัวเลข [1] 4 2 4 2 ที่ได้จากบรรทัดคำสั่งสร้างปิรามิดประชากรนั้นเป็นค่า par หรือค่า parameter ของส่วนแสดงผลกราฟฟิกของ R

 

เนื่องจากเราไม่ได้กำหนดสีให้กับข้อมูลของเพศชายและเพศหญิง ฟังก์ชัน pyramid.plot() จะเติมสีให้กับทุกข้อมูลของทุกช่วงอายุโดยจะเติมสีให้โดยใช้ฟังก์ชัน rainbow() เป็นค่าเริ่มต้น เราจึงเห็นแต่ละช่วงอายุของทั้งชายและหญิงมีโทนสีที่ต่างกัน

 

การแก้ไขเพิ่มเติม หรือค้นหาจุดบกพร่องของฟังก์ชัน pyramid.plot() ของ package plotrix ที่ใช้เวลาในการสร้างปิรามิดประชากรค่อนข้างนาน เมื่อข้อมูลจำนวนคนในแต่ละกลุ่มอายุมีจำนวนมากนั้น เรามาดูกันในครั้งหน้านะครับ

 

อิอิอิ

 

เราเอง

 

เพลง: อย่าหยุดยั้ง
ศิลปิน: ดิ โอฬาร โปรเจคท์

 

 

Sections: พัฒนางานประจำ
License: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
created: 03 July 2014 11:33 Modified: 03 July 2014 12:25 [ Report Abuse ]
ดอกไม้
People who like this: Ico24 ServiceMan, Ico24 pompom, and 4 others.
People Who Like This
 
Facebook
Twitter
Google

Other Posts By This Blogger

ความเห็น

ยังคงอ่านบันทึก R ไม่ค่อยเข้าหัวเหมือนเดิม แต่ฟังเพลงของน้าตลอด อนุมาณเองว่าอารมณ์น้าฯ แต่ละวันเป็นแบบไหน...คงเป็นตามในเพลง

 

เอิ้ก เอิ้ก

 

"ใจสั่งมา"

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 34.225.194.144
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ