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

Our Shangri-La
Ico64
Kittisakdi Choomalee

ภาควิชาเวชศาสตร์ชุมชน คณะแพทยศาสตร์ มหาวิทยาลัยสงขลานครินทร์
เครือข่าย
สมาชิก · ติดตาม: 0 · ผู้ติดตาม: 16

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

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

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

จากบันทึกที่แล้ว ผมยกตัวอย่างเพื่อให้เห็นภาพชัด ๆ ของฟังก์ชัน setdiff() ฟังก์ชัน intersect() และฟังก์ชัน union()

 

ฟังก์ชันทั้ง ๓ เป็นฟังก์ชันพื้นฐานของเซ็ท (set) ที่เรา ๆ ท่าน ๆ หลายคนเรียนมาหมดแล้วตั้งแต่สมัยมัธยม ประถมโน่น

 

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

 

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

 

ในกรณีที่เป็นข้อมูลต่างกัน

 

ในกรณีนี้เราคงมีทางเลือกอยู่ ๒ ทางด้วยกันก็คือ

  • เก็บเฉพาะข้อมูลที่เหมือนกัน
  • เก็บทุกข้อมูลที่มีอยู่ทั้ง ๒ แฟ้มข้อมูล

กรณีทางเลือกนี้ (เก็บทุกข้อมูลที่มีอยู่ทั้ง ๒ แฟ้มข้อมูล) จะทำให้เกิดระเบียนว่างขึ้นในข้อมูล โดยจะมีระเบียนที่มีข้อมูลว่างในส่วนของตัวแปรที่มีในแฟ้มข้อมูลที่ ๑ แต่ไม่มีในแฟ้มข้อมูลที่ ๒ (มีเฉพาะข้อมูลจากแฟ้มข้อมูลที่ ๑ ระเบียนที่เหลือจะเป็นระเบียนว่าง) และตัวแปรที่มีในแฟ้มข้อมูลที่ ๒ แต่ไม่มีในแฟ้มข้อมูลที่ ๑ (มีเฉพาะข้อมูลจากแฟ้มข้อมูลที่ ๒ ระเบียนที่เหลือจะเป็นระเบียนว่าง)

 

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

 

จำนวนตัวแปรจากผลของการใช้คำสั่ง

length(setdiff(names(data1),names(data2))) + length(setdiff(names(data2),names(data1))) + length(intersect(names(data1),names(data2))

 

หรือเท่ากับผลจากคำสั่ง

length(union(names(data1),names(data2)))

 

จากตัวอย่างในบันทึกที่ ๒

> data1 <- read.csv("2dif_var_f1.csv")
> data2 <- read.csv("2dif_var_f2.csv")
> setdiff(names(data1),names(data2))
[1] "a9"
> setdiff(names(data2),names(data1))
[1] "a4" "a5" "a6"
> intersect(names(data1),names(data2))
[1] "id"  "age" "sex" "a1"  "a2"  "a3"
> union(names(data1),names(data2))
 [1] "id"  "age" "sex" "a1"  "a2"  "a3"  "a9"  "a4"  "a5"  "a6"
> length(setdiff(names(data1),names(data2))) +
+ length(setdiff(names(data2),names(data1))) +
+ length(intersect(names(data1),names(data2)))
[1] 10
> length(union(names(data1),names(data2)))
[1] 10

 

อิอิอิ

 

เราเอง

 

เพลง: ล่องเรือหารัก
ศิลปิน: สุริยัน ส่องแสง

 

ล่องเรือหารักแต่งคำร้องโดยครูชลธี ธารทอง

ต้นฉบับขับร้องโดย สุริยัน ส่องแสง หลังจากนั้นมีศิลปินหลายท่านนำไปขับร้องเช่น ยอดรัก สลักใจ (ซึ่งน่าจะคุ้นกันดีกับเวอร์ชันนี้) เสรี รุ่งสว่าง ศรเพชร ศรสุพรรณ เอกราช สุวรรณภูมิ ...

 

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

บันทึกอื่นๆ

ความเห็น

วันนี้น้าฯ มาสั้นดีครับ อ่านจบลงอย่างรวดเร็ว และยังคงงงเช่นเดิม

 

ชาวงนี้วาเลนไทน์ แต่น้าฯ ยังล่องเรือหารักอยู่เลย

 

เอิ้ก เอิ้ก

 

"ใจสั่งมา"

แบบย่อ ๆ บ้างครับ

อิอิอิ

เราเอง

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