วิธีการคำนวณความถี่สัมพัทธ์โดยใช้ dplyr


บ่อยครั้งที่คุณอาจต้องการคำนวณความถี่สัมพัทธ์/สัดส่วนของค่าในคอลัมน์หนึ่งหรือหลายคอลัมน์ของกรอบข้อมูลใน R

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

 #create data frame
df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'),
                 points = c(12, 15, 19, 22, 32, 34, 39))

#view data frame
df

  team position points
1 AG 12
2 AF15
3 FY 19
4 BG 22
5 BG 32
6 BG 34
7 BF 39

ตัวอย่างที่ 1: ความถี่สัมพัทธ์ของตัวแปร

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

 library(dplyr)

df %>%
  group_by (team) %>%
  summarize (n = n()) %>%
  mutate (freq = n / sum(n))

# A tibble: 2 x 3
  team n freq
    
1 to 3 0.429
2 B 4 0.571

สิ่งนี้บอกเราว่าทีม A คิดเป็น 42.9% ของแถวทั้งหมดในกรอบข้อมูล ในขณะที่ทีม B คิดเป็น 57.1% ที่เหลือของแถว โปรดทราบว่าเมื่อรวมกันแล้วจะรวมกันได้มากถึง 100%

ที่เกี่ยวข้อง: คู่มือฉบับสมบูรณ์: วิธีจัดกลุ่มและสรุปข้อมูลใน R

ตัวอย่างที่ 2: ความถี่สัมพัทธ์ของตัวแปรหลายตัว

รหัสต่อไปนี้แสดงวิธีคำนวณความถี่สัมพัทธ์ของตำแหน่ง ต่อ ทีม:

 library(dplyr)

df %>%
  group_by (team, position) %>%
  summarize (n = n()) %>%
  mutate (freq = n / sum(n))

# A tibble: 4 x 4
# Groups: team [2]
  team position n freq
       
1 AF 2 0.667
2 AG 1 0.333
3 BF 1 0.250
4 BG 3 0.750

สิ่งนี้บอกเราว่า:

  • 66.7% ของผู้เล่นทีม A อยู่ในตำแหน่ง F
  • 33.3% ของผู้เล่นทีม A อยู่ในตำแหน่ง G
  • 25.0% ของผู้เล่นทีม A อยู่ในตำแหน่ง F
  • 75.0% ของผู้เล่นทีม B อยู่ในตำแหน่ง G

ที่เกี่ยวข้อง: วิธีใช้ Mutate เพื่อสร้างตัวแปรใหม่ใน R

ตัวอย่างที่ 3: แสดงความถี่สัมพัทธ์เป็นเปอร์เซ็นต์

รหัสต่อไปนี้แสดงวิธีการคำนวณความถี่สัมพัทธ์ของตำแหน่งโดยทีม และวิธีการแสดงความถี่สัมพัทธ์เหล่านี้เป็นเปอร์เซ็นต์:

 library(dplyr)

df %>%
  group_by (team, position) %>%
  summarize (n = n()) %>%
  mutate (freq = paste0(round(100 * n/sum(n), 0), ' % '))

# A tibble: 4 x 4
# Groups: team [2]
  team position n freq 
       
1 AF 2 67%  
2 GA 1 33%  
3 BF 1 25%  
4 BG 3 75%

คุณสามารถค้นหาบทช่วยสอน R เพิ่มเติมได้ ที่นี่

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

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