วิธีนับค่าที่แตกต่างโดยใช้ 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

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

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