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

Our Shangri-La
Ico64
Kittisakdi Choomalee

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

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

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

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

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

 

ตัวอย่างง่าย ๆ คือ

 

สมมติว่าเรามีตะกร้าอยู่ ๒ ใบ ตะกร้าแต่ละใบใส่ผลไม้หลากหลายชนิดไว้ในตะกร้าทั้ง ๒ ใบ ซึ่งชนิดของผลไม้ที่ใส่ไว้ในตะกร้าแต่ละใบมีทั้งที่เหมือนกัน และต่างชนิดกัน

 

ดังนั้นคำถามสำหรับเรื่องผลไม่ในตะกร้าจึงมีได้เป็น

  • ในตะกร้าใบที่ ๑ (set ที่ 1) มีผลไม้อะไรที่ไม่มีในตะกร้าใบที่ ๒ (set ที่ 2)
  • ในตะกร้าใบที่ ๒ (set ที่ 2) มีผลไม้อะไรที่ไม่มีในตะกร้าใบที่ ๑ (set ที่ 1)
  • ตะกร้าทั้ง ๒ (ทั้ง 2 set) มีผลไม้อะไรบ้างที่เหมือนกันอยู่
  • ตะกร้าทั้ง ๒ ใบ (ทั้ง 2 set) ใส่ผลไม้อะไรเอาไว้บ้าง

สมมติว่า

  • ตะกร้าใบแรกใส่ มังคุด ฝรั่ง ส้ม ลำไย มะม่วง
  • ตะกร้าใบที่ ๒ ใส่ มะม่วง มะนาว ส้มโอ เงาะ มังคุด พุทรา

 

> ตะกร้าใบที่1 <- c("มังคุด", "ฝรั่ง", "ส้ม","ลำไย","มะม่วง")
> ตะกร้าใบที่2 <- c("มะม่วง", "มะนาว","ส้มโอ","เงาะ","มังคุด","พุทรา")
> ตะกร้าใบที่1
[1] "มังคุด" "ฝรั่ง"  "ส้ม"    "ลำไย"   "มะม่วง"
> ตะกร้าใบที่2
[1] "มะม่วง" "มะนาว"  "ส้มโอ"  "เงาะ"   "มังคุด" "พุทรา"

 

สำหรับคำถามแรกที่ว่า ในตะกร้าใบที่ ๑ (set ที่ 1) มีผลไม้อะไรที่ไม่มีในตะกร้าใบที่ ๒ (set ที่ 2) นั้นเราหาคำตอบโดยใช้ฟังก์ชัน setdiff() ดังนี้

> setdiff(ตะกร้าใบที่1,ตะกร้าใบที่2)
[1] "ฝรั่ง" "ส้ม"   "ลำไย"

 

สำหรับคำถามที่ ๒ ที่ว่า ในตะกร้าใบที่ ๒ (set ที่ 2) มีผลไม้อะไรที่ไม่มีในตะกร้าใบที่ ๑ (set ที่ 1) นั้นเราหาคำตอบโดยใช้ฟังก์ชัน setdiff() ดังนี้

> setdiff(ตะกร้าใบที่2,ตะกร้าใบที่1)
[1] "มะนาว" "ส้มโอ" "เงาะ"  "พุทรา"

 

สำหรับคำถามที่ ๓ ที่ว่า ตะกร้าทั้ง ๒ (ทั้ง 2 set) มีผลไม้อะไรบ้างที่เหมือนกันอยู่ นั้นเราหาคำตอบโดยใช้ฟังก์ชัน intersect() ดังนี้

> intersect(ตะกร้าใบที่1,ตะกร้าใบที่2)
[1] "มังคุด" "มะม่วง"

 

และคำถามที่ ๔ ที่ว่า ตะกร้าทั้ง ๒ ใบ (ทั้ง 2 set) ใส่ผลไม้อะไรเอาไว้บ้าง นั้นเราหาคำตอบโดยใช้ฟังก์ชัน union() ดังนี้

> union(ตะกร้าใบที่1,ตะกร้าใบที่2)
[1] "มังคุด" "ฝรั่ง"  "ส้ม"    "ลำไย"   "มะม่วง" "มะนาว"  "ส้มโอ"  "เงาะ"   "พุทรา"

 

ฟังก์ชัน setdiff() จะทำงานแทนเราในการที่ไปไล่ดูในตะกร้าทีละใบว่ามีผลไม้อะไรอยู่บ้างทีละตะกร้าแล้วมาเปรียบเทียบกันตามเงื่อนไขที่เราระบุ

 

ซึ่งจะช่วยให้เราทำงานได้ง่ายขึ้นในกรณีที่มีข้อมูลจำนวนมาก ดูด้วยตาคงจะตาลายและลายตา

 

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

 

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

 

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

 

อิอิอิ

 

เราเอง

 

เพลง: บ้านเรือนเคียงกัน
ศิลปิน: ชาย เมืองสิงห์

 

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

บันทึกอื่นๆ

ความเห็น

เริ่มยากแล้วน้า อิอิอิ

บ้านเรือนเคียงกัน แอบมองทุกวันเลยยยเชียว...

คุณต้องทำการเข้าระบบก่อนแสดงความเห็น