วิธีใช้ฟังก์ชัน ntile() ใน dplyr (พร้อมตัวอย่าง)
คุณสามารถใช้ฟังก์ชัน ntile() จากแพ็คเกจ dplyr ใน R เพื่อแบ่งเวกเตอร์อินพุตออกเป็น n bins
ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:
ไนไทล์(x, n)
ทอง:
- x : เวกเตอร์อินพุต
- n : จำนวนช่อง
หมายเหตุ : ขนาดถังอาจแตกต่างกันได้ถึง 1 ขนาด
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่างที่ 1: ใช้ ntile() กับเวกเตอร์
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน ntile() เพื่อแบ่งเวกเตอร์ที่มี 11 องค์ประกอบออกเป็น 5 กลุ่มที่แตกต่างกัน:
library (dplyr) #createvector x <- c(1, 3, 4, 6, 7, 8, 10, 13, 19, 22, 23) #break up vector into 5 buckets ntile(x, 5) [1] 1 1 1 2 2 3 3 4 4 5 5
จากผลลัพธ์ เราจะเห็นว่าแต่ละองค์ประกอบของเวกเตอร์ดั้งเดิมถูกวางไว้ในหนึ่งในห้าถัง
ค่าที่น้อยที่สุดถูกกำหนดให้กับบัคเก็ต 1 ในขณะที่ค่าที่ใหญ่ที่สุดถูกกำหนดให้กับบัคเก็ต 5
ตัวอย่างเช่น:
- ค่าที่น้อยที่สุดของ 1, 3 และ 4 ถูกกำหนดให้กับที่เก็บข้อมูล 1
- ค่าที่ใหญ่ที่สุด 22 และ 23 ถูกกำหนดให้กับที่เก็บข้อมูล 5
ตัวอย่างที่ 2: การใช้ ntile() กับกรอบข้อมูล
สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ที่แสดงคะแนนที่ทำโดยผู้เล่นบาสเกตบอลที่แตกต่างกัน:
#create data frame df <- data. frame (player=LETTERS[1:9], points=c(12, 19, 7, 22, 24, 28, 30, 19, 15)) #view data frame df player points 1 to 12 2 B 19 3 C 7 4 D 22 5 E 24 6 F 28 7 G 30 8:19 a.m. 9 I 15
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน ntile() เพื่อสร้างคอลัมน์ใหม่ในกรอบข้อมูลที่กำหนดผู้เล่นแต่ละคนให้กับหนึ่งในสามที่เก็บข้อมูล ตามคะแนนที่ทำได้:
library (dplyr) #create new column that assigns players into buckets based on points df$bucket <- ntile(df$points, 3) #view updated data frame df player points bucket 1 to 12 1 2 B 19 2 3 C 7 1 4 D 22 2 5 E 24 3 6 F 28 3 7 G 30 3 8:19 2 9 I 15 1
คอลัมน์ ที่เก็บข้อมูล ใหม่จะกำหนดค่าระหว่าง 1 ถึง 3 ให้กับผู้เล่นแต่ละคน
ผู้เล่นที่มีคะแนนต่ำสุดจะได้รับค่า 1 และผู้เล่นที่มีคะแนนสูงสุดจะได้รับค่า 3
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีใช้ฟังก์ชันทั่วไปอื่นๆ ใน R:
วิธีใช้ฟังก์ชัน cross() ใน dplyr
วิธีใช้ฟังก์ชัน relocate() ใน dplyr
วิธีใช้ฟังก์ชัน Slice() ใน dplyr