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

Our Shangri-La
Ico64
Kittisakdi Choomalee

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

อ่าน: 1368
ความเห็น: 1

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

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

ถ้าเงื่อนไขของการรวมข้อมูลทั้งสองแฟ้มข้อมูลเป็นการรวมเฉพาะข้อมูลที่มีตัวแปรเหมือนกันทั้งสองแฟ้มข้อมูลเท่านั้น

 

> 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

 

อิอิอิ

 

เราเอง

 

เพลง: กลับมาทำไม
ศิลปิน: สังข์ทอง สีใส

 

 

 

 

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

บันทึกอื่นๆ

ความเห็น

Ico48
Monly (ความเคลื่อนไหวล่าสุด)
23 กุมภาพันธ์ 2558 09:45
#102065

เพลงนี้ชอบอ่ะ

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