ความเห็น: 2
รวมกันเมื่อฉันต่างกับเธอ 5: ก้าวย่างทางเดิน ลืมเลือนคืนวัน ดั้นด้นไป [C]
หลังจากที่หลายคนลาหยุดงานเพื่อไปร่วมพิธีเนื่องในวันตรุษจีนและหยุดงานหลังจากนั้น ๑ วันเนื่องในวันหยุดพิเศษของจังหวัดชายแดนใต้ที่ประกาศหยุดในวันที่ไม่จำเป็นต้องหยุด แต่วันที่จำเป็นต้องหยุดต้องลาหยุดเอา
-----------------------------------------------
ในกรณีที่แฟ้มข้อมูลทั้งสองแฟ้มข้อมูลที่จะนำข้อมูลมารวมกัน มีจำนวนตัวแปรไม่เท่ากันและเราเลือกที่จะเก็บข้อมูลทั้งหมดทุกตัวแปรที่มีจากทั้งสองแฟ้มข้อมูล หรือจากข้อมูลตัวอย่างจากบันทึกที่ ๒ นั้น ท้ายสุดแล้วตัวแปรทั้งหมดที่ได้จากการรวมแฟ้มข้อมูลทั้งสองเข้าด้วยกันจะมีจำนวนทั้งสิ้น ๑๐ ตัวแปร
แต่บางตัวแปร (ที่มีเฉพาะในแฟ้มข้อมูลที่ ๑ หรือมีเฉพาะในแฟ้มข้อมูลที่ ๒) ในบางระเบียนจะเป็นข้อมูลว่าง หรือเป็น missing value
หากเราเลือกทางเลือกนี้ หรือเลือกที่จะเก็บข้อมูลจากทุกตัวแปรที่มีอยู่ทั้งหมดในแฟ้มข้อมูลที่ ๒ การจัดการข้อมูลที่ต้องทำขั้นต่อไปคือจัดการให้แฟ้มข้อมูลทั้งสองมีชื่อ/ และจำนวนตัวแปรเท่ากัน
หรือนั่นคือต้องสร้างตัวแปรที่มีอยู่เฉพาะในแฟ้มข้อมูลที่ ๑ ให้กับแฟ้มข้อมูลที่ ๒ และสร้างตัวแปรที่มีอยู่เฉพาะในแฟ้มข้อมูลที่ ๒ ให้กับแฟ้มข้อมูลที่ ๑
ตัวอย่างข้อมูลที่จะนำมารวมกันเก็บไว้ในวัตถุชื่อ data1 และ data2
> data1 <- read.csv("2dif_var_f1.csv")
> data2 <- read.csv("2dif_var_f2.csv")
> data1
id age sex a1 a2 a3 a9
1 1 25 1 1 1 1 2
2 2 24 1 1 3 1 2
3 3 32 2 4 2 1 1
4 4 26 1 1 4 2 2
5 5 41 2 2 2 2 1
6 6 45 1 3 1 1 1
7 7 24 2 2 3 1 2
8 8 73 2 2 4 2 2
9 9 35 1 4 5 1 1
10 10 22 2 4 2 2 1
> data2
id age sex a1 a2 a3 a4 a5 a6
1 21 40 1 4 3 2 2 1 2
2 22 32 2 2 2 1 2 1 2
3 23 25 2 4 3 1 2 2 1
4 24 28 2 1 3 2 1 1 1
5 25 31 1 3 4 2 1 1 2
6 26 44 1 4 2 1 2 2 1
7 27 28 2 2 2 1 2 2 2
8 28 32 1 3 3 1 1 1 1
9 29 45 2 3 1 2 1 1 1
10 30 66 2 4 1 2 1 1 1
ขั้นแรกหาว่ามีตัวแปรไหนมีเฉพาะในแฟ้มข้อมูลที่ ๑ (data1) ด้วยฟังก์ชัน setdiff()
> setdiff(names(data1),names(data2))
[1] "a9"
หาว่ามีตัวแปรไหนมีเฉพาะในแฟ้มข้อมูลที่ ๒ (data2) ด้วยฟังก์ชัน setdiff()
> setdiff(names(data2),names(data1))
[1] "a4" "a5" "a6"
จากฟังก์ชัน setdiff() ข้างต้นทำใหเราทราบว่าเราต้องสร้างตัวแปร a9 ให้กับแฟ้มข้อมูลที่ ๒ และเราต้องสร้างตัวแปร a4 a5 และตัวแปร a6 ให้กับแฟ้มข้อมูลที่ ๑
ตัวแปรที่เราสร้างขึ้นทั้งหมดนี้จะบรรจุ (เก็บ) ด้วยค่า NA หรือ missing value
วิธีการแรกที่จะจัดการคือวิธีการ "ลูกอึด" หรือวิธีการใช้ลูกฮึก ลูกอึด ใช้บรรทัดคำสั่งสร้างตัวแปรทีละตัวแปรที่ต่างกันให้กับแฟ้มข้อมูลทั้งสอง นั่นคือ
บรรทัดคำสั่งสร้างตัวแปรที่ไม่มีในแฟ้มข้อมูลที่ ๑ ที่มีเฉพาะแฟ้มข้อมูลที่ ๒ ให้กับแฟ้มข้อมูลที่ ๑
> data1$a4 <- NA
> data1$a5 <- NA
> data1$a6 <- NA
และใช้บรรทัดคำสั่งสำหรับสร้างตัวแปรที่มีเฉพาะในแฟ้มข้อมูลที่ ๑ ให้กับแฟ้มข้อมูลที่ ๒
> data2$a9 <- NA
วิธีการข้างต้นอาจจะปวดหัวตัวร้อนหากจำนวนตัวแปรที่แตกต่างกันมีจำนวนมาก ดังนั้นเราใช้วิธีที่ ๒ ช่วยลดการเขียนบรรทัดคำสั่งแล้วช่วยลดความผิดพลาดจากการเขียนชื่อตัวแต่ละตัวแปร
บรรทัดคำสั่งที่ใช้สร้างตัวแปรที่มีเฉพาะในแฟ้มข้อมูลที่ ๒ ให้กับแฟ้มข้อมูลที่ ๑
> data1[,c(as.character(setdiff(names(data2),names(data1))))] <- NA
บรรทัดคำสั่งที่ใช้สร้างตัวแปรที่มีเฉพาะในแฟ้มข้อมูลที่ ๑ ให้กับแฟ้มข้อมูลที่ ๒
> data2[,c(as.character(setdiff(names(data1),names(data2))))] <- NA
ผลลัพธ์ที่ได้เป็น
> data1
id age sex a1 a2 a3 a9 a4 a5 a6
1 1 25 1 1 1 1 2 NA NA NA
2 2 24 1 1 3 1 2 NA NA NA
3 3 32 2 4 2 1 1 NA NA NA
4 4 26 1 1 4 2 2 NA NA NA
5 5 41 2 2 2 2 1 NA NA NA
6 6 45 1 3 1 1 1 NA NA NA
7 7 24 2 2 3 1 2 NA NA NA
8 8 73 2 2 4 2 2 NA NA NA
9 9 35 1 4 5 1 1 NA NA NA
10 10 22 2 4 2 2 1 NA NA NA
> data2
id age sex a1 a2 a3 a4 a5 a6 a9
1 21 40 1 4 3 2 2 1 2 NA
2 22 32 2 2 2 1 2 1 2 NA
3 23 25 2 4 3 1 2 2 1 NA
4 24 28 2 1 3 2 1 1 1 NA
5 25 31 1 3 4 2 1 1 2 NA
6 26 44 1 4 2 1 2 2 1 NA
7 27 28 2 2 2 1 2 2 2 NA
8 28 32 1 3 3 1 1 1 1 NA
9 29 45 2 3 1 2 1 1 1 NA
10 30 66 2 4 1 2 1 1 1 NA
เมื่อตัวแปรมีจำนวนและชื่อเหมือนกันแล้วเราสามารถใช้ฟังก์ชัน rbind() รวมข้อมูลของทั้งสองแฟ้มข้อมูลเข้าด้วยกันได้แล้ว
> data12 <- rbind(data1, data2)
> data12
id age sex a1 a2 a3 a9 a4 a5 a6
1 1 25 1 1 1 1 2 NA NA NA
2 2 24 1 1 3 1 2 NA NA NA
3 3 32 2 4 2 1 1 NA NA NA
4 4 26 1 1 4 2 2 NA NA NA
5 5 41 2 2 2 2 1 NA NA NA
6 6 45 1 3 1 1 1 NA NA NA
7 7 24 2 2 3 1 2 NA NA NA
8 8 73 2 2 4 2 2 NA NA NA
9 9 35 1 4 5 1 1 NA NA NA
10 10 22 2 4 2 2 1 NA NA NA
11 21 40 1 4 3 2 NA 2 1 2
12 22 32 2 2 2 1 NA 2 1 2
13 23 25 2 4 3 1 NA 2 2 1
14 24 28 2 1 3 2 NA 1 1 1
15 25 31 1 3 4 2 NA 1 1 2
16 26 44 1 4 2 1 NA 2 2 1
17 27 28 2 2 2 1 NA 2 2 2
18 28 32 1 3 3 1 NA 1 1 1
19 29 45 2 3 1 2 NA 1 1 1
20 30 66 2 4 1 2 NA 1 1 1
อิอิอิ
เราเอง
เพลง: อำนาจใบแดง
ศิลปิน: มนต์รัก ขวัญโพธิ์ไทย
เพลงนี้ผมมี version ที่ขับร้องโดย ศรเพชร ศรสุพรรณ ระหว่างโทนเสียงของมนต์รัก กับศรเพชรนั้น ถ้าฟังเผิน ก็จะพบว่า ละม้ายคล้ายกันยิ่ง โดยเฉพาะเมื่อฟังเพลงนี้ โทนเสียงของศรเพชรนั้นจะบี้ บีบเล็ก บวกกับลูกคอที่เป็นเอกลักษณ์ของศรเพชร
บันทึกอื่นๆ
- เก่ากว่า « รวมกันเมื่อฉันต่างกับเธอ 4: ก้าว...
- ใหม่กว่า » รวมกันเมื่อฉันต่างกับเธอ 6: ก้าว...
20 กุมภาพันธ์ 2558 21:49
#102042
เรื่องหยุดตรุษจีน ก็จริงครับน้าฯ
หยุดวันไหว้ก่อน 1 วัน แล้วได้หยุดตามประกาศอีก 1 วัน บางคนขอลาแถมไปอีก 1 วัน จะได้เดินทางไปไหนกับครอบครัวได้ไกลๆ
เอิ้ก เอิ้ก
"ใจสั่งมา"