วิธีนับค่าที่ไม่ซ้ำในคอลัมน์ใน r


คุณสามารถใช้วิธีการต่อไปนี้เพื่อนับจำนวนค่าที่ไม่ซ้ำในคอลัมน์ของกรอบข้อมูลใน R:

วิธีที่ 1: ใช้ Base R

 length(unique(df$my_column))

วิธีที่ 2: ใช้ dplyr

 library (dplyr)

n_distinct(df$my_column)

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

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(10, 13, 14, 14, 18, 19, 20, 20, 22))

#view data frame
df

  team points
1 to 10
2 to 13
3 to 14
4 to 14
5 B 18
6 B 19
7 C 20
8 C 20
9 D 22

วิธีที่ 1: นับค่าที่ไม่ซ้ำในคอลัมน์โดยใช้ฐาน R

รหัสต่อไปนี้แสดงวิธีนับจำนวนค่าที่ไม่ซ้ำในคอลัมน์ จุด ของกรอบข้อมูลโดยใช้ฟังก์ชันฐาน R:

 #count unique values in points column
length(unique(df$points))

[1] 7

มีค่าที่ไม่ซ้ำกัน 7 ค่าในคอลัมน์ คะแนน

ในการนับจำนวนค่าที่ไม่ซ้ำในแต่ละคอลัมน์ของกรอบข้อมูล เราสามารถใช้ฟังก์ชัน sapply() ได้:

 #count unique values in each column
sapply(df, function (x) length(unique(x)))

  team points 
     4 7

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

  • มีค่าที่ไม่ซ้ำกัน 7 ค่าในคอลัมน์ คะแนน
  • มีค่าที่ไม่ซ้ำกัน 4 ค่าในคอลัมน์ ทีม

วิธีที่ 2: นับค่าที่ไม่ซ้ำในคอลัมน์โดยใช้ dplyr

รหัสต่อไปนี้แสดงวิธีนับจำนวนค่าที่แตกต่างกันในคอลัมน์ จุด โดยใช้ฟังก์ชัน n_distinct() จากแพ็คเกจ dplyr:

 library (dplyr)

#count unique values in points column
n_distinct(df$points)

[1] 7

มีค่าที่ไม่ซ้ำกัน 7 ค่าในคอลัมน์ คะแนน

ในการนับจำนวนค่าที่ไม่ซ้ำในแต่ละคอลัมน์ของกรอบข้อมูล เราสามารถใช้ฟังก์ชัน sapply() ได้:

 library (dplyr)

#count unique values in each column
sapply(df, function (x) n_distinct(x))

  team points 
     4 7

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

  • มีค่าที่ไม่ซ้ำกัน 7 ค่าในคอลัมน์ คะแนน
  • มีค่าที่ไม่ซ้ำกัน 4 ค่าในคอลัมน์ ทีม

โปรดทราบว่าผลลัพธ์เหล่านี้ตรงกับผลลัพธ์ของวิธี R พื้นฐาน

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

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

วิธีนับรายการที่ซ้ำกันใน R
วิธีนับค่าที่ไม่ซ้ำตามกลุ่มใน R
วิธีนับจำนวนค่า NA ในแต่ละคอลัมน์ใน R

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

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