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