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

Our Shangri-La
Ico64
Kittisakdi Choomalee

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

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

ก้าวย่างทางเดิน ลืมเลือนคืนวัน ดั้นด้นไป: Titanic ฉบับ rate R # ๓ [C]

ข้อมูลตัวอย่างข้อมูลหนึ่งที่ถูกนำมาใช้เป็นข้อมูลตัวอย่างสำหรับการวิเคราะห์ข้อมูลคือข้อมูล Titanic

บันทึกที่เกี่ยวข้อง

 

 

ครั้งที่แล้วเราค้างไว้กับคำถามที่ว่าสิ่งที่เราต้องการก็คือข้อมูลของแต่ละคน หรือข้อมูลที่บ่งบอกถึงลักษณะของผู้โดยสารแต่ละคนไม่ใช่ข้อมูลที่สรุปรวมเอาไว้เป็นตารางอย่างที่เป็นอยู่

 

แต่จะทำอย่างไรให้ได้ข้อมูลออกมาอย่างที่เราต้องการ

 

Tiatanic เป็นวัตถุที่มี class เป็น Table และเป็นวัตถุชนิด array ใน R

 

เราลองใช้ฟังก์ชัน sapply() ที่เคยใช้มาในตัวอย่างข้อมูลอื่น ๆ เพื่อดึงข้อมูลออกมา ลองมาดูผลลัพธ์กันนะครับ

 

บรรทัดคำสั่ง

> sapply(Titanic, "[", 1)
 [1]   0   0  35   0   0   0  17   0 118 154 387 670   4  13  89   3   5  11  13   0   1  13  14   0  57  14  75 192 140  80  76  20

> class(sapply(Titanic, "[", 1))
[1] "numeric"

 

เราจะพบว่าผลลัพธ์ของบรรทัดคำสั่งข้างต้นให้ผลลัพธ์ออกมาเป็นค่าตัวเลข ๓๒ ค่า เมื่อตรวจสอบผลลัพธ์ที่ได้ พบว่าผลลัพธ์ที่ได้มี class เป็นตัวเลข

 

จากบรรทัดคำสั่ง

> dim(Titanic)
[1] 4 2 2 2

 

เมื่อเอาตัวเลขทั้งหมดมาคูณกันจะได้ผลลัพธ์เป็น

> 4*2*2*2
[1] 32

 

ผลลัพธ์ที่ได้คือ ๓๒ ซึ่งเท่ากับตัวเลขผลลัพธ์จากบรรทัดคำสั่ง sapply(Titanic, "[", 1) และเมื่อเราลองเอาตัวเลขไปเทียบกับข้อมูลในตารางที่เกิดจากการเรียกดูข้อมูล Titanic แล้วจะพบว่า ตัวเลขทั้งหมดคือค่าแต่ละค่าทั้งหมดในตารางทั้ง ๔ ตารางข้อมูล Titanic

 

หรือนั่นคือข้อมูลตัวเลขจากบรรทัดคำสั่ง Titanic (ดูข้อมูลในบันทึกก่อนหน้านี้) หรือเป็นข้อมูลแต่ละกลุ่มตามเงื่อนไขของทั้ง ๔ ตัวแปร เช่นผู้โดยสารชั้น First Class ที่เป็นเด็กผู้ชายที่รอดชีวิต ผู้โดยสารชั้น First Class ที่เป็นเด็กผู้ชายที่เสียชีวิต ผู้โดยสารชั้น First Class ที่เป็นเด็กผู้หญิงที่รอดชีวิต ผู้โดยสารชั้น First Class ที่เป็นเด็กผู้ชายที่เสียชีวิต เป็นต้น

 

ตัวอย่างข้อมูลของตาราง

> Titanic[1,,,]
, , Survived = No

        Age
Sex      Child Adult
  Male       0   118
  Female     0     4

, , Survived = Yes

        Age
Sex      Child Adult
  Male       5    57
  Female     1   140

 

เราลองใช้ฟังก์ชัน data.frame() เปลี่ยนให้ Titanic เปลี่ยนเป็นวัตถุชนิด data frame

 

บรรทัดคำสั่ง

> data.frame(Titanic)
   Class    Sex   Age Survived Freq
1    1st   Male Child       No    0
2    2nd   Male Child       No    0
3    3rd   Male Child       No   35
4   Crew   Male Child       No    0
5    1st Female Child       No    0
6    2nd Female Child       No    0
7    3rd Female Child       No   17
8   Crew Female Child       No    0
9    1st   Male Adult       No  118
10   2nd   Male Adult       No  154
11   3rd   Male Adult       No  387
12  Crew   Male Adult       No  670
13   1st Female Adult       No    4
14   2nd Female Adult       No   13
15   3rd Female Adult       No   89
16  Crew Female Adult       No    3
17   1st   Male Child      Yes    5
18   2nd   Male Child      Yes   11
19   3rd   Male Child      Yes   13
20  Crew   Male Child      Yes    0
21   1st Female Child      Yes    1
22   2nd Female Child      Yes   13
23   3rd Female Child      Yes   14
24  Crew Female Child      Yes    0
25   1st   Male Adult      Yes   57
26   2nd   Male Adult      Yes   14
27   3rd   Male Adult      Yes   75
28  Crew   Male Adult      Yes  192
29   1st Female Adult      Yes  140
30   2nd Female Adult      Yes   80
31   3rd Female Adult      Yes   76
32  Crew Female Adult      Yes   20

 

เราจะพบว่าฟังก์ชัน data.frame() มีวิธี (method) สำหรับจัดการกับข้อมูลที่มี class เป็น Table ด้วย

 

แต่เราก็พบอีกว่าฟังก์ชัน data.frame() นั้นจัดการข้อมูลให้เราไม่ได้ตามที่เราต้องการนั่นคือ data frame ที่ได้ยังเป็นข้อมูลสรุปของข้อมูลแต่ละกลุ่มเหมือนผลลัพธ์ที่ได้จากบรรทัดคำสั่ง sapply(Titanic, "[", 1)

 

เพียงแต่บรรทัดคำสั่ง sapply(Titanic, "[", 1) จะให้ผลลัพธ์เฉพาะส่วนที่เป็นตัวเลขสรุปข้อมูลแต่ละกลุ่ม (๓๒ กลุ่ม)

 

แต่ผลลัพธ์จากฟังก์ชัน data.frame() นั้นจะมร้างข้อมูลที่ประกอบไปด้วยตัวแปร ๕ ตัวแปร ซึ่งมีตัวแปรเพิ่มขึ้นมาอีก ๑ ตัวแปรจากเดิมที่มีตัวแปรทั้งหมด ๔ ตัวแปร (Class, Sex, Age, Survived) ตัวแปรที่เพิ่มขึ้นมาอีกคือตัวแปร Freq ซึ่งเป็นตัวแปรที่มีข้อมูลจำนวนซ้ำของข้อมูลแต่ละกลุ่ม (เช่นผู้โดยสารชั้น First Class ที่เป็นเด็กผู้ชายที่รอดชีวิต ผู้โดยสารชั้น First Class ที่เป็นเด็กผู้ชายที่เสียชีวิต ผู้โดยสารชั้น First Class ที่เป็นเด็กผู้หญิงที่รอดชีวิต ผู้โดยสารชั้น First Class ที่เป็นเด็กผู้ชายที่เสียชีวิต เป็นต้น)

 

ผลลัพธ์ที่ได้จากฟังก์ชัน data.frame() นั้นไม่ใช่สิ่งที่เราต้องการแต่เราสามารถที่จะนำผลลัพธ์ที่ได้จากฟังก์ชัน data.frame() ไปใช้ในการสร้างข้อมูลที่เป็นข้อมูลที่เป็นลักษณะของผู้โดยสารแต่ละคน (ไม่ใช่ข้อมูลสรุปรวม)

 

แนวทางในการสร้างข้อมูลก็คือการสร้างข้อมูลในกลุ่มนั้น ๆ ขึ้นมาอีกเป็นจำนวนเท่ากับจำนวนซ้ำของของมูลในกลุ่มนั้น ๆ หรือเท่ากับค่าที่เก็บอยู่ในตัวแปร Freq

ในโปรแกรมวิเคราะห์ข้อมูลอย่างโปรแกรม Stata มีฟังก์ชั่น expand สำหรับจัดการข้อมูลตามความต้องการข้างต้นได้ สำหรับ R นั้นคงต้องรื้อ ๆ หาข้อมูลดูก่อนครับ

 

อิอิอิ

แต่ไม่ใช่รื้อแบบรื้อของในบ้านอย่างคุณท้าวฯ นะครับ และไม่ถึงกับแกะอย่างลุงทดแทน หรือไม่ต้องเดินทางไปไกลอย่างน้อง ๒ ใย

อิอิอิ

 

เราเอง

 

เพลง:
ศิลปิน:

Sections: Miscellaneous
License: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
created: 26 April 2014 23:33 Modified: 01 May 2020 09:31 [ Report Abuse ]
ดอกไม้
People who like this: Ico24 Ikkyu, Ico24 คนธรรมดา, and 2 others.
People Who Like This
 
Facebook
Twitter
Google

Other Posts By This Blogger

ความเห็น

ช่วงนี้เป็นนักเดินทางกันเยอะครับ ถ้าลองตรวจสอบหลายๆ คนให้ดิ อิอิ

 

บันทึกก็น่าจะห่างหายลงไปบ้าง ตามช่วงเวลาของปี อิอิ

 

ส่วนน้ายังล่องเรือตามหา R ไม่หยุดเสียที อย่าให้ล่มแบบที่เกาหลีนะครับ

 

เอิ้ก เอิ้ก

 

"ใจสั่งมา"

แกะอยู่นาน แบบค่อยๆ อ่านไม่นั้นหลุด ติดโคลน ฮิ

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