วิธีใช้ฟังก์ชัน quantile() ใน r


ในสถิติ ควอไทล์ คือค่าที่แบ่งชุดข้อมูลที่จัดประเภทออกเป็นกลุ่มเท่าๆ กัน

ฟังก์ชัน quantile() ใน R สามารถใช้คำนวณควอนไทล์ตัวอย่างของชุดข้อมูลได้

ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:

ปริมาณ (x, probs = seq (0, 1, 0.25), na.rm = FALSE)

ทอง:

  • x : ชื่อเวกเตอร์
  • probs : เวกเตอร์ตัวเลขของความน่าจะเป็น
  • na.rm : ว่าจะลบค่า NA หรือไม่

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ตัวอย่างที่ 1: คำนวณควอไทล์ของเวกเตอร์

รหัสต่อไปนี้แสดงวิธีการคำนวณควอนไทล์ของเวกเตอร์ใน R:

 #define vector of data 
data = c(1, 3, 3, 4, 5, 7, 8, 9, 12, 13, 13, 15, 18, 20, 22, 23, 24, 28)

#calculate quartiles
quantile(data, probs = seq(0, 1, 1/4))

 0% 25% 50% 75% 100% 
1.0 5.5 12.5 19.5 28.0 

#calculate quintiles
quantile(data, probs = seq(0, 1, 1/5))

 0% 20% 40% 60% 80% 100% 
1.0 4.4 8.8 13.4 21.2 28.0 

#calculate deciles
quantile(data, probs = seq(0, 1, 1/10))

 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 
1.0 3.0 4.4 7.1 8.8 12.5 13.4 17.7 21.2 23.3 28.0 

#calculate random quantiles of interest
quantile(data, probs = c(.2, .5, .9))

20% 50% 90% 
4.4 12.5 23.3

ตัวอย่างที่ 2: คำนวณปริมาณของคอลัมน์ในกรอบข้อมูล

รหัสต่อไปนี้แสดงวิธีการคำนวณควอนไทล์สำหรับคอลัมน์เฉพาะในกรอบข้อมูล:

 #create data frame
df <- data. frame (var1=c(1, 3, 3, 4, 5, 7, 7, 8, 12, 14, 18),
                 var2=c(7, 7, 8, 3, 2, 6, 8, 9, 11, 11, 16),
                 var3=c(3, 3, 6, 6, 8, 4, 4, 7, 10, 10, 11))

#calculate quartiles of column 'var2'
quantile(df$var2, probs = seq(0, 1, 1/4))

  0% 25% 50% 75% 100% 
 2.0 6.5 8.0 10.0 16.0

นอกจากนี้เรายังสามารถใช้ฟังก์ชัน sapply() เพื่อคำนวณควอไทล์สำหรับหลายคอลัมน์พร้อมกันได้:

 #calculate quartiles of every column
sapply(df, function (x) quantile(x, probs = seq(0, 1, 1/4)))

     var1 var2 var3
0% 1.0 2.0 3
25% 3.5 6.5 4
50% 7.0 8.0 6
75% 10.0 10.0 9
100% 18.0 16.0 11

ตัวอย่างที่ 3: คำนวณควอไทล์ตามกลุ่ม

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชันในแพ็คเกจ dplyr เพื่อคำนวณควอนไทล์ด้วยตัวแปรการจัดกลุ่ม:

 library (dplyr)

#define data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C') ,
                 points=c(1, 3, 3, 4, 5, 7, 7, 8, 12, 14, 18))

#define quantiles of interest
q = c(.25, .5, .75)

#calculate quantiles by grouping variable
df %>%
  group_by(team) %>%
  summarize(quant25 = quantile(points, probs = q[1]), 
            quant50 = quantile(points, probs = q[2]),
            quant75 = quantile(points, probs = q[3]))

# A tibble: 3 x 4
  team quant25 quant50 quant75
           
1 to 2.5 3 3.25
2 B 6.5 7 7.25
3 C 13 14 16   

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

บทช่วยสอนต่อไปนี้แสดงวิธีใช้ฟังก์ชัน quantile() เพื่อคำนวณค่าควอนไทล์ทั่วไปอื่นๆ:

วิธีการคำนวณเปอร์เซ็นไทล์ใน R
วิธีการคำนวณเดซิลใน R
วิธีการคำนวณควอไทล์ใน R

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

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