วิธีเลือกตัวอย่างสุ่มใน r: พร้อมตัวอย่าง


ในการเลือก ตัวอย่างแบบสุ่ม ใน R เราสามารถใช้ฟังก์ชัน Sample() ซึ่งใช้ไวยากรณ์ต่อไปนี้:

ตัวอย่าง (x, ขนาด, แทนที่ = FALSE, prob = NULL)

ทอง:

  • x: เวกเตอร์ขององค์ประกอบต่างๆ ให้เลือก
  • ขนาด: ขนาดตัวอย่าง
  • แทนที่: ไม่ว่าจะสุ่มตัวอย่างด้วยการเปลี่ยนหรือไม่ก็ตาม ค่าเริ่มต้นเป็นเท็จ
  • prob: เวกเตอร์ของน้ำหนักความน่าจะเป็นเพื่อให้ได้องค์ประกอบจากเวกเตอร์ ค่าเริ่มต้นคือ NULL

บทช่วยสอนนี้จะอธิบายวิธีใช้ฟังก์ชันนี้เพื่อเลือกตัวอย่างแบบสุ่มใน R จากทั้งเวกเตอร์และกรอบข้อมูล

ตัวอย่างที่ 1: ตัวอย่างสุ่มจากเวกเตอร์

รหัสต่อไปนี้แสดงวิธีการเลือกตัวอย่างแบบสุ่มจากเวกเตอร์ โดยไม่ต้องเปลี่ยน :

 #create vector of data
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

#select random sample of 5 elements without replacement
sample(x=data, size=5)

[1] 10 12 5 14 7

รหัสต่อไปนี้แสดงวิธีการเลือกตัวอย่างแบบสุ่มจากเวกเตอร์ ที่มีการแทนที่ :

 #create vector of data
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

#select random sample of 5 elements with replacement
sample(x=data, size=5, replace= TRUE )

[1] 12 1 1 6 14

ตัวอย่างที่ 2: สุ่มตัวอย่างจากกลุ่มข้อมูล

รหัสต่อไปนี้แสดงวิธีการเลือกตัวอย่างแบบสุ่มจากกรอบข้อมูล:

 #create data frame
df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14),
                 y=c(12, 6, 4, 23, 25, 8, 9),
                 z=c(2, 7, 8, 8, 15, 17, 29))

#view data frame 
df

   X Y Z
1 3 12 2
2 5 6 7
3 6 4 8
4 6 23 8
5 8 25 15
6 12 8 17
7 14 9 29

#select random sample of three rows from data frame
rand_df <- df[ sample ( nrow (df), size= 3 ), ]

#display randomly selected rows
rand_df

   X Y Z
4 6 23 8
7 14 9 29
1 3 12 2

นี่คือสิ่งที่เกิดขึ้นในโค้ดชิ้นนี้:

1. ในการเลือกชุดย่อยของกรอบข้อมูลใน R เราใช้ไวยากรณ์ต่อไปนี้: df[rows, columns]

2. ในโค้ดข้างต้น เราสุ่มเลือกตัวอย่าง 3 แถวจากกรอบข้อมูลและคอลัมน์ ทั้งหมด

3. ผลลัพธ์สุดท้ายคือชุดย่อยของกรอบข้อมูลที่มีการสุ่มเลือก 3 แถว

สิ่งสำคัญคือต้องทราบว่าทุกครั้งที่เราใช้ฟังก์ชัน ตัวอย่าง () R จะเลือกตัวอย่างอื่นเนื่องจากฟังก์ชันจะเลือกค่าแบบสุ่ม

ในการสร้างผลลัพธ์ของการวิเคราะห์บางอย่างอีกครั้ง ต้องแน่ใจว่าใช้ set.seed(ตัวเลขบางตัว) เพื่อให้ฟังก์ชัน Sample() เลือกตัวอย่างสุ่มที่เหมือนกันในแต่ละครั้ง ตัวอย่างเช่น:

 #make this example reproducible
set.seed(23)

#create data frame
df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14),
                 y=c(12, 6, 4, 23, 25, 8, 9),
                 z=c(2, 7, 8, 8, 15, 17, 29))

#select random sample of three rows from data frame
rand_df <- df[ sample ( nrow (df), size= 3 ), ]

#display randomly selected rows
rand_df

   X Y Z
5 8 25 15
2 5 6 7
6 12 8 17

แต่ละครั้งที่คุณรันโค้ดด้านบน กรอบข้อมูล 3 แถวเดียวกันจะถูกเลือกในแต่ละครั้ง

แหล่งข้อมูลเพิ่มเติม

การสุ่มตัวอย่างแบบแบ่งชั้นใน R (พร้อมตัวอย่าง)
การสุ่มตัวอย่างอย่างเป็นระบบใน R (พร้อมตัวอย่าง)
การสุ่มตัวอย่างคลัสเตอร์ใน R: พร้อมตัวอย่าง

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *