A: วิธีจัดกลุ่มตามและนับแบบมีเงื่อนไข
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อดำเนินการจัดกลุ่มและเงื่อนไขการนับใน R:
library (dplyr) df %>% group_by(var1) %>% summarize(count = sum(var2 == ' val '))
ไวยากรณ์เฉพาะนี้จะจัดกลุ่มบรรทัดของกรอบข้อมูลตาม var1 แล้วนับจำนวนบรรทัดโดยที่ var2 เท่ากับ “val”
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: จัดกลุ่มตามและนับโดยมีเงื่อนไขใน R
สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), pos=c('Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'), points=c(18, 22, 19, 14, 14, 11, 20, 28)) #view data frame df team pos points 1 A Gu 18 2 A Fo 22 3 A Fo 19 4 A Fo 14 5 B Gu 14 6 B Gu 11 7 B Fo 20 8 B Fo 28
รหัสต่อไปนี้แสดงวิธีจัดกลุ่มกรอบข้อมูลตามตัวแปร ทีม และนับจำนวนแถวที่ตัวแปร pos เท่ากับ “Gu”:
library (dplyr)
#group by team and count rows where pos is 'Gu'
df %>%
group_by(team) %>%
summarize(count = sum(pos == ' Gu '))
# A tibble: 2 x 2
team count
1 to 1
2 B 2
จากผลลัพธ์เราจะเห็นได้ว่า:
- ทีม A มี 1 แถว โดยคอลัมน์ pos เท่ากับ “Gu”
- ทีม B มี 2 แถว โดยคอลัมน์ pos เท่ากับ “Gu”
เราสามารถใช้ไวยากรณ์ที่คล้ายกันเพื่อจัดกลุ่มและนับด้วยเงื่อนไขตัวเลข
ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีการจัดกลุ่มตามตัวแปร ทีม และนับจำนวนแถวที่ ตัวแปรคะแนน มากกว่า 15:
library (dplyr)
#group by team and count rows where pos is 'Gu'
df %>%
group_by(team) %>%
summarize(count = sum(points > 15 ))
# A tibble: 2 x 2
team count
1 to 3
2 B 2
จากผลลัพธ์เราจะเห็นได้ว่า:
- ทีม A มี 3 เส้นโดยที่คอลัมน์คะแนนมากกว่า 15
- ทีม B มี 2 เส้นโดยที่คอลัมน์คะแนนมากกว่า 15
คุณสามารถใช้ไวยากรณ์ที่คล้ายกันเพื่อจัดกลุ่มและนับตามเงื่อนไขเฉพาะใดๆ ที่คุณต้องการ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีนับค่าในคอลัมน์ที่มีเงื่อนไขใน R
วิธีเลือกค่า N แรกตามกลุ่มใน R