วิธีนับค่าที่แตกต่างโดยใช้ dplyr (พร้อมตัวอย่าง)
คุณสามารถใช้วิธีใดๆ ต่อไปนี้เพื่อนับจำนวนค่าที่แตกต่างกันในกรอบข้อมูล R โดยใช้ฟังก์ชัน n_distinct() ของ dplyr :
วิธีที่ 1: นับค่าที่แตกต่างกันในคอลัมน์
n_distinct(df$column_name)
วิธีที่ 2: นับค่าที่แตกต่างกันในทุกคอลัมน์
sapply(df, function (x) n_distinct(x))
วิธีที่ 3: นับค่าที่แตกต่างกันตามกลุ่ม
df %>% group_by (grouping_column) %>% summarize (count_distinct = n_distinct(values_column))
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:
library (dplyr)
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(6, 6, 8, 10, 9, 9, 12, 12),
assists=c(3, 6, 4, 2, 4, 5, 5, 9))
#view data frame
df
team points assists
1 to 6 3
2 to 6 6
3 to 8 4
4 to 10 2
5 B 9 4
6 B 9 5
7 B 12 5
8 B 12 9
วิธีที่ 1: นับค่าที่แตกต่างกันในคอลัมน์
โค้ดต่อไปนี้แสดงวิธีใช้ n_distinct() เพื่อนับจำนวนค่าที่แตกต่างกันในคอลัมน์ ‘ทีม’:
#count distinct values in 'team' column
n_distinct(df$team)
[1] 2
มีค่าที่แตกต่างกัน 2 ค่าในคอลัมน์ ‘ทีม’
วิธีที่ 2: นับค่าที่แตกต่างกันในทุกคอลัมน์
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน sapply() และ n_distinct() เพื่อนับจำนวนค่าที่แตกต่างกันในแต่ละคอลัมน์ของกรอบข้อมูล:
#count distinct values in every column
sapply(df, function (x) n_distinct(x))
team points assists
2 5 6
จากผลลัพธ์เราจะเห็นได้ว่า:
- มีค่าที่แตกต่างกัน 2 ค่าในคอลัมน์ ‘ทีม’
- มีค่าที่แตกต่างกัน 5 ค่าในคอลัมน์ “คะแนน”
- มีค่าที่แตกต่างกัน 6 ค่าในคอลัมน์ “helps”
วิธีที่ 3: นับค่าที่แตกต่างกันตามกลุ่ม
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน n_distinct() เพื่อนับจำนวนค่าที่แตกต่างกันต่อกลุ่ม:
#count distinct 'points' values by 'team'
df %>%
group_by (team) %>%
summarize (distinct_points = n_distinct(points))
# A tibble: 2 x 2
team distinct_points
1 to 3
2 B 2
จากผลลัพธ์เราจะเห็นได้ว่า:
- มี 3 ค่าคะแนนที่แตกต่างกันสำหรับทีม A
- มี 2 คะแนนแยกกันสำหรับทีม B
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ โดยใช้ dplyr:
วิธีบันทึกค่าใหม่โดยใช้ dplyr
วิธีแทนที่ NA ด้วย Zero ใน dplyr
วิธีจัดเรียงตัวแปรตามกลุ่มโดยใช้ dplyr
วิธีเลือกแถวแรกตามกลุ่มโดยใช้ dplyr