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

Our Shangri-La
Ico64
Kittisakdi Choomalee

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

อ่าน: 1695
ความเห็น: 0

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

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

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

มาดูในรายละเอียดของบรรทัดคำสั่งในบันทึกที่แล้วกันนะครับ

ตัวอย่างส่วนหนึ่งของกลุ่มของข้อมูลที่เราต้องสร้างข้อมูลซ้ำ จำนวนเท่ากับความถี่ของกลุ่ม เช่น

> data.frame(Titanic)[which(data.frame(Titanic)[5]!=0),]
   Class    Sex   Age Survived Freq
3    3rd   Male Child       No   35
7    3rd Female Child       No   17
9    1st   Male Adult       No  118
10   2nd   Male Adult       No  154
11   3rd   Male Adult       No  387
12  Crew   Male Adult       No  670

.......

นั่นคือเราต้องสร้างข้อมูลของตัวแปร ๔ ตัวแปรตามเงื่อนไขของตัวแปรและจำนวนเท่ากับความถี่ของกลุ่มนั้น ๆ เช่น

กลุ่มแรก (3) ตัวแปร Class มีค่าเป็น "3rd" หรือผู้โดยสารชั้น ๓ เพศ (Sex) ชาย "Male" อายุ (Age) เป็นเด็ก "Child" การรอดชีวิต (Survived) เสียชีวิต "No" มีจำนวน ๓๕ คน

หรือให้เข้าใจสั้น ๆ ง่าย ๆ เด็กชายที่โดยสารชั้น ๓ เสียชีวิตทั้งหมด ๓๕ คน

ดังนั้นกลุ่มนี้เราจึงต้องสร้างค่าให้กับตัวแปร Class Sex Age Survived มีค่าเป็น 3rd Male Child No จำนวน ๓๕ ซ้ำ

เพื่อไม่ให้สับสนระหว่าง class ที่เป็นฟังก์ชันกับชื่อตัวแปรของข้อมูลผมจะใช้ชื่อตัวแปรเป็น pclass เป็นชื่อแทนตัวแปร Class และใช้ชื่อตัวแปรอื่น ๆ เป็นตัวพิมพ์เล็กทั้งหมด

และเพื่อให้ไม่สับสนมากนักค่าของตัวแปรต่าง ๆ ผมจะใช้ค่าที่เป็นข้อความ เช่นชั้น ๓ ก็จะใช้ 3rd ชั้น ๒ ใช้ 2nd ชั้น ๑ ใช้ 1st ลูกเรือใช้ Crew เพศชายใช้ male เพศหญิงใช้ female เด็กใช้ child ผู้ใหญ่ใช้ adult เสียชีวิตใช้ No รอดชีวิตใช้ Yes

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

แต่หากเราจะใช้วัตถุเดียวกันในการเก็บค่าที่สร้างขึ้นในแต่ละครั้ง (แต่ละเงื่อนไข) วัตถุที่เหมาะสมสำกรับการใส่ข้อมูลเพิ่มเข้าไปเรื่อย ๆ ก็น่าจะเป็นวัตถุที่มี class เป็น matrix

เราสามารถที่จะใส่ค่าให้กับ matrix ตำแหน่งต่าง ๆ ได้โดยการระบุตำแหน่งที่เราต้องการใส่ข้อมูล

เช่น สมมติให้ ab เป็น matrix ขนาด 20 x 5 หรือ ab มีจำนวน ๒๐ แถว ๕ สดมภ์ หรือ ab เก็บข้อมูลได้ทั้งหมด ๒๐ x ๕ = ๑๐๐ ค่า

> ab <- NA
> ab <- matrix(ab, nrow=20, ncol=5)
> head(ab)
     [,1] [,2] [,3] [,4] [,5]
[1,]   NA   NA   NA   NA   NA
[2,]   NA   NA   NA   NA   NA
[3,]   NA   NA   NA   NA   NA
[4,]   NA   NA   NA   NA   NA
[5,]   NA   NA   NA   NA   NA
[6,]   NA   NA   NA   NA   NA

 

ถ้าเราระบุว่าให้ใส่ข้อมูล ๑ ๒ ๓ ๔ ๕ ในแถวที่ ๑ ของ ab รรทัดคำสั่งก็จะเป็น

> ab[1,] <- c(1,2,3,4,5)
> head(ab)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]   NA   NA   NA   NA   NA
[3,]   NA   NA   NA   NA   NA
[4,]   NA   NA   NA   NA   NA
[5,]   NA   NA   NA   NA   NA
[6,]   NA   NA   NA   NA   NA

 

หรือถ้าให้ใส่ข้อมูลแถวที่ ๕ และแถวที่ ๖ ด้วยข้อมูลดังต่อไปนี้ 1 4 7 8 2 5 6 7 4 3 บรรทัดคำสั่งก็จะเป็น

 > ab[5:6,] <- c(1, 4, 7, 8, 2, 5, 6, 7, 4, 3)
> head(ab)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]   NA   NA   NA   NA   NA
[3,]   NA   NA   NA   NA   NA
[4,]   NA   NA   NA   NA   NA
[5,]    1    7    2    6    4
[6,]    4    8    5    7    3

 

จำนวนข้อมูลที่ให้ใส่ในตำแหน่งต่างๆ ของ matrix นั้นจะต้องมีจำนวนเท่ากับตำแหน่งที่เราระบุ

 

ab[1,] หมายถึงแถวที่ ๑ ของ ab แต่แถวที่ ๑ ของ ab ประกอบด้วยสดมภ์จำนวน ๕ สดมภ์ ดังนั้นต้องใส่ค่าจำนวน ๕ ค่าให้กับแถวที่ ๑

 

ถ้าเราระบุจำนวนของค่าที่จะใส่ใน matrix ตำแหน่งที่ระบุไม่เท่ากับจำนวนค่าใน matrix ที่เราต้องการ R จะไม่ดำเนินการให้

 

เช่น ab[2,] หมายถึงแถวที่ ๒ ของ ab ที่มีสดมภ์ ๕ สสดมภ์ หรือเราต้องระบุค่าที่ต้องใส่ให้ตำแหน่งดังกล่าว ๕ ค่า แตกหากเราระบุค่าที่จะใส่ตำแหน่งดังกล่าว (แถวที่ ๒ ของ ab) แค่ ๓ ค่า R ก็จะไม่ใส่ค่าที่ระบุในแถวที่ ๒ ให้

> ab[2,] <- c(1,2,3)
Error in ab[2, ] <- c(1, 2, 3) :
  number of items to replace is not a multiple of replacement length
> head(ab)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]   NA   NA   NA   NA   NA
[3,]   NA   NA   NA   NA   NA
[4,]   NA   NA   NA   NA   NA
[5,]    1    7    2    6    4
[6,]    4    8    5    7    3

 

หรือหากเราต้องการใส่ค่าให้แค่ ๓ ค่าในแถวที่ ๔ ของ ab เราต้องระบุตำแหน่งของสดมภ์ในแถวที่ ๔ ด้วย R จึงจะดำเนินการใส่ค่าให้ ab

 

เช่น

> ab[4,1:3] <- c(1,2,3)
> head(ab)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]   NA   NA   NA   NA   NA
[3,]   NA   NA   NA   NA   NA
[4,]    1    2    3   NA   NA
[5,]    1    7    2    6    4
[6,]    4    8    5    7    3

 

บรรทัดคำสั่งข้างต้นคือต้องการใส่ค่าจำนวน ๓ ค่า (1,2,3) ให้กับ ab ให้กับสดมภ์ที่ ๑ ถึง ๓ ของแถวที่ ๔

 

ในตัวอย่างนี้ผมจะใช้วิธีการใส่ค่าที่สร้างขึ้นในแต่ละครั้งไว้ในวัตถุเดียวกัน แบบเดียวกับตัวอย่างการใส่ค่าให้กับ ab ข้างต้น

 

อิอิอิ

 

เราเอง

 

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

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

Other Posts By This Blogger

ความเห็น

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