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

Our Shangri-La
Ico64
Kittisakdi Choomalee

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

อ่าน: 1027
ความเห็น: 2

รวมกันเมื่อฉันต่างกับเธอ 2: ก้าวย่างทางเดิน ลืมเลือนคืนวัน ดั้นด้นไป

รวมข้อมูล (append) จากแฟ้มข้อมูล ๒ แฟ้มข้อมูลที่มีจำนวนตัวแปร/ ตัวแปรที่ต่างกันใน R

จากความเดิมตอนที่แล้วในบันทึก "รวมกันเมื่อฉันต่างกับเธอ: ก้าวย่างทางเดิน ลืมเลือนคืนวัน ดั้นด้นไป"

เราต้องการรวมข้อมูลที่อยู่คนละแฟ้มข้อมูลเข้าด้วยกัน โดยที่ข้อมูลที่จะรวมเข้าด้วยกันนั้นเป็นข้อมูลเรื่องเดียวกันแต่ใช้การเก็บข้อมูลโดยคนหลายคนเพื่อความรวดเร็วในการเก็บข้อมูล ใน

 

กรณีเช่นนี้เราจะใช้ฟังก์ชัน rbind() สำหรับรวมข้อมูลจากแต่ละคนเข้าด้วยกัน

 

แต่หากบังเอิญว่าข้อมูลเดียวกันนี้ของแต่ละคนมีตัวแปรที่แตกต่างกันอยู่ เราจะใช้ฟังก์ชัน rbind() เหมือนปกติจะไม่ได้แล้ว เนื่องจากจำนวน/ ชื่อตัวแปรแตกต่างกัน

 

ยกตัวอย่างให้เห็นแบบง่าย ๆ ดังนี้ครับ

 

สมมติว่าแฟ้มข้อมูลแรก มีตัวแปรทั้งหมด ๗ ตัวดังนี้

> names(mydata1)
[1] "id"  "age" "sex" "a1"  "a2"  "a3"  "a9"

 

และแฟ้มข้อมูลแฟ้มที่ ๒ มีจำนวนตัวแปร ๙ ตัวแปรดังนี้

> names(mydata2)
[1] "id"  "age" "sex" "a1"  "a2"  "a3"  "a4"  "a5"  "a6"

 

หรือแฟ้มข้อมูลทั้ง ๒ ข้างต้นมีตัวแปรและชื่อตัวแปรดังรูป

 

แฟ้มข้อมูลแรก (mydata1)

 

แฟ้มข้อมูลที่ ๒ (mydata2)

 

เราจะเห็นว่าจำนวนตัวแปรของแฟ้มข้อมูลทั้งสองไม่เท่ากัน เมื่อเราใช้ฟังก์ชัน rbind() รวมข้อมูลทั้งสองเข้าด้วยกันจะได้ผลลัพธ์เป็น

 

> rbind(mydata1,mydata2)
Error in rbind(deparse.level, ...) :
  numbers of columns of arguments do not match

 

ไม่สามารถรวมแฟ้มข้อมูลทั้งสองเข้าด้วยกันได้เนื่องจากมีจำนวน/ ชื่อตัวแปรไม่เหมือน/เท่ากัน

 

ในกรณีที่จำนวนตัวแปรมีไม่มาก (ดังเช่นตัวอย่าง) เราสามารถที่จะดูว่าตัวแปรที่ต่างกันในแต่ละแฟ้มข้อมูลนั้นมีตัวแปรอะไรบ้าง และนำไปสู่การจัดการทำให้จำนวนตัวแปรเท่ากัน หรือทำให้ชื่อตัวแปรเหมือนกัน เพื่อที่จะใช้ฟังก์ชัน rbind() รวมข้อมูลเข้าด้วยกัน

 

แต่หากแฟ้มข้อมูลที่เราจะรวมข้อมูลเข้าด้วยกันมีจำนวนตัวแปรจำนวนมาก เราคงต้องใช้ความพยายามอย่างมากในการตรวจสอบความแตกต่างของตัวแปรจากทั้งสองแฟ้มข้อมูล

 

จากตัวอย่างแฟ้มข้อมูลที่มีจำนวนตัวแปรไม่มาก เราพบว่า

 

  • แฟ้มข้อมูลแรก (mydata1) มีตัวแปรที่ไม่มีอยู่ในแฟ้มข้อมูลที่ ๒ (mydata2) คือตัวแปร "a9"
  • แฟ้มข้อมูลที่ ๒ (mydata2) มีตัวแปรที่ไม่มีในแฟ้มข้อมูลแรก (mydata1) คือตัวแปร "a4", "a5" และตัวแปร "a6"
  • แฟ้มข้อมูลทั้งสองมีตัวแปรที่เหมือนกันอยู่คือตัวแปร "id", "age", "sex", "a1", "a2" และตัวแปร "a3"

 

R มีฟังก์ชันที่สามารถนำมาประยุกต์ใช้กับกรณีนี้ได้คือฟังก์ชัน setdiff()

 

หากต้องการตรวจสอบว่ามีตัวแปรใดบ้างที่มีอยู่ในแฟ้มข้อมูลที่หนึ่ง (mydata1) แต่ไม่มีในแฟ้มข้อมูลที่สอง (mydata2) ก็จะใช้บรรทัดคำสั่ง

 

> setdiff(colnames(mydata1),colnames(mydata2))
[1] "a9"

 

หากต้องการตรวจสอบว่ามีตัวแปรใดบ้างที่มีอยู่ในแฟ้มข้อมูลที่สอง (mydata2) แต่ไม่มีในแฟ้มข้อมูลที่หนึ่ง (mydata1) ก็จะใช้บรรทัดคำสั่ง

 

> setdiff(colnames(mydata2),colnames(mydata1))
[1] "a4" "a5" "a6"

 

หรือหากเราจะดูว่าแฟ้มข้อมูลทั้งสองมีตัวแปรอะไรบ้างเหมือนกันเราสามารถใช้ฟังก์ชัน intersect() ตรวจสอบได้เช่นกัน

 

> intersect(colnames(mydata1), colnames(mydata2))
[1] "id"  "age" "sex" "a1"  "a2"  "a3"

 

อิอิอิ

 

เราเอง

 

เพลง: หนุ่มทุ่งกระโจมทอง
ศิลปิน: เสรี รุ่งสว่าง

 

นับได้ว่าเป็นเพลงประจำเวทีลูกทุ่งเลยก็ว่าได้ เนื่องจากเพลงนี้ถูกนำมาใช้ในการประกวดร้องเพลงลูกทุ่งอยู่บ่อยครั้ง

 

 

 

 

 

 

 

หมวดหมู่บันทึก: เรื่องทั่วไป
สัญญาอนุญาต: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
สร้าง: 09 กุมภาพันธ์ 2558 18:23 แก้ไข: 09 กุมภาพันธ์ 2558 20:22 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ: Ico24 คนธรรมดา, Ico24 ทดแทน, และ 4 คนอื่น.
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

Ico48
ทดแทน (Recent Activities)
09 Febuary 2015 21:54
#101864

น้ากลับมาเหมือนเดิมแล้ว

โปรแกรม คำสั่ง

Z-80 ป่าวน้า

เพลงนี้เกิดไม่ทันจริงๆ น้าฯ อิอิ

 

"ใจสั่งมา"

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

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