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

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

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