วิธีการใช้ฟังก์ชัน n() ใน r (พร้อมตัวอย่าง)


คุณสามารถใช้ฟังก์ชัน n() จากแพ็คเกจ dplyr ใน R เพื่อนับจำนวนการสังเกตในกลุ่ม

ต่อไปนี้เป็นวิธีทั่วไปสามวิธีในการใช้คุณลักษณะนี้ในทางปฏิบัติ:

วิธีที่ 1: ใช้ n() เพื่อนับการสังเกตตามกลุ่ม

 df %>%
  group_by(group_variable) %>%
  summarize(count = n())

วิธีที่ 2: ใช้ n() เพื่อเพิ่มคอลัมน์ที่แสดงการสังเกตตามกลุ่ม

 df %>%
  group_by(group_variable) %>%
  mutate(count = n())

วิธีที่ 3: ใช้ n() เพื่อกรองตามการสังเกตตามกลุ่ม

 df %>%
  group_by(group_variable) %>%
  filter(n() > 15 )

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C'),
                 points=c(22, 25, 25, 20, 29, 13),
                 assists=c(10, 12, 9, 4, 11, 10),
                 rebounds=c(9, 8, 5, 10, 14, 12))

#view data frame
df

  team points assists rebounds
1 A 22 10 9
2 A 25 12 8
3 to 25 9 5
4 B 20 4 10
5 B 29 11 14
6 C 13 10 12

ตัวอย่างที่ 1: ใช้ n() เพื่อนับการสังเกตตามกลุ่ม

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน n() พร้อมด้วยฟังก์ชัน summarise() เพื่อนับจำนวนการสังเกตต่อ ทีม :

 library (dplyr)

#count number of observations by team
df %>%
  group_by(team) %>%
  summarize(count = n())

# A tibble: 3 x 2
  team count
   
1 to 3
2 B 2
3 C 1

จากผลลัพธ์เราจะเห็นได้ว่า:

  • ทีม A ปรากฏตัว 3 ครั้ง
  • ทีม B ปรากฏตัว 2 ครั้ง
  • ทีม C ปรากฏตัว 1 ครั้ง

ตัวอย่างที่ 2: ใช้ n() เพื่อเพิ่มคอลัมน์ที่แสดงการสังเกตตามกลุ่ม

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน n() กับฟังก์ชัน mutate() เพื่อเพิ่มคอลัมน์ในกรอบวันที่ซึ่งมีจำนวนการสังเกตต่อ ทีม :

 library (dplyr)

#add new column that shows number of observations by team
df %>%
  group_by(team) %>%
  mutate(count = n())

# A tibble: 6 x 5
# Groups: team [3]
  team points assists rebounds count
            
1 to 22 10 9 3
2 to 25 12 8 3
3 to 25 9 5 3
4 B 20 4 10 2
5 B 29 11 14 2
6 C 13 10 12 1

คอลัมน์ใหม่ที่เรียกว่า count มีจำนวนทีมสำหรับแต่ละแถวในกรอบข้อมูล

ตัวอย่างที่ 3: ใช้ n() เพื่อกรองตามการสังเกตตามกลุ่ม

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน n() กับฟังก์ชัน filter() เพื่อกรองกรอบข้อมูลเพื่อแสดงเฉพาะแถวที่ทีมปรากฏมากกว่าหนึ่งครั้ง:

 library (dplyr)

#filter rows where team count is greater than 1
df %>%
  group_by(team) %>%
  filter(n() > 1 )

# A tibble: 5 x 4
# Groups: team [2]
  team points assists rebounds
           
1 A 22 10 9
2 A 25 12 8
3 to 25 9 5
4 B 20 4 10
5 B 29 11 14

โปรดทราบว่าเฟรมข้อมูลผลลัพธ์จะมีเฉพาะแถวที่ทีมคือ “A” หรือ “B” เนื่องจากเป็นทีมเดียวที่มีจำนวนมากกว่าหนึ่งทีม

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีใช้ฟังก์ชันทั่วไปอื่นๆ ใน R:

วิธีใช้ฟังก์ชัน cross() ใน dplyr
วิธีใช้ฟังก์ชัน relocate() ใน dplyr
วิธีใช้ฟังก์ชัน Slice() ใน dplyr

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

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