วิธีดำเนินการจัดกลุ่มข้อมูลใน r: พร้อมตัวอย่าง


คุณสามารถใช้หนึ่งในสองวิธีเพื่อทำการจัดกลุ่มข้อมูลใน R:

วิธีที่ 1: ใช้ฟังก์ชัน cut()

 library (dplyr)

#perform binning with custom breaks
df %>% mutate(new_bin = cut(variable_name, breaks=c(0, 10, 20, 30)))

#perform binning with specific number of bins
df %>% mutate(new_bin = cut(variable_name, breaks= 3 ))

วิธีที่ 2: ใช้ฟังก์ชัน ntile()

 library (dplyr)

#perform binning with specific number of bins
df %>% mutate(new_bin = ntile(variable_name, n= 3 ))

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

 #create data frame
df <- data. frame (points=c(4, 4, 7, 8, 12, 13, 15, 18, 22, 23, 23, 25),
                 assists=c(2, 5, 4, 7, 7, 8, 5, 4, 5, 11, 13, 8),
                 rebounds=c(7, 7, 4, 6, 3, 8, 9, 9, 12, 11, 8, 9))

#view head of data frame
head(df)

  points assists rebounds
1 4 2 7
2 4 5 7
3 7 4 4
4 8 7 6
5 12 7 3
6 13 8 8

ตัวอย่างที่ 1: ทำการจัดกลุ่มข้อมูลด้วยฟังก์ชัน cut()

รหัสต่อไปนี้แสดงวิธีการจัดกลุ่มข้อมูลใน ตัวแปรจุด โดยใช้ฟังก์ชัน cut() พร้อมเครื่องหมายแบ่งเฉพาะ:

 library (dplyr)

#perform data binning on variable points
df %>% mutate(points_bin = cut(points, breaks=c(0, 10, 20, 30)))

   points assists rebounds points_bin
1 4 2 7 (0.10]
2 4 5 7 (0.10]
3 7 4 4 (0.10]
4 8 7 6 (0.10]
5 12 7 3 (10.20]
6 13 8 8 (10.20]
7 15 5 9 (10.20]
8 18 4 9 (10.20]
9 22 5 12 (20.30]
10 23 11 11 (20.30]
11 23 13 8 (20.30]
12 25 8 9 (20.30]

โปรดทราบว่าแต่ละแถวในกรอบข้อมูลถูกวางไว้เป็นหนึ่งในสามกลุ่มตามค่าของคอลัมน์จุด

นอกจากนี้เรายังสามารถระบุจำนวนการกระโดดที่จะใช้เพื่อสร้างกล่องที่มีความกว้างเท่ากันโดยเริ่มจากค่าต่ำสุดไปจนถึงค่าสูงสุดของคอลัมน์ จุด :

 library (dplyr)

#perform data binning on variable points
df %>% mutate(points_bin = cut(points, breaks= 3 ))

   points assists rebounds points_bin
1 4 2 7 (3.98.11]
2 4 5 7 (3.98.11]
3 7 4 4 (3.98.11]
4 8 7 6 (3.98.11]
5 12 7 3 (11.18]
6 13 8 8 (11.18]
7 15 5 9 (11.18]
8 18 4 9 (11.18]
9 22 5 12 (18.25]
10 23 11 11 (18.25]
11 23 13 8 (18.25]
12 25 8 9 (18.25]

ตัวอย่างที่ 2: ทำการจัดกลุ่มข้อมูลด้วยฟังก์ชัน ntile()

รหัสต่อไปนี้แสดงวิธีการจัดกลุ่มข้อมูลในตัวแปร จุด โดยใช้ฟังก์ชัน ntile() พร้อมกลุ่มผลลัพธ์ตามจำนวนที่ระบุ:

 library (dplyr)

#perform data binning on variable points
df %>% mutate(points_bin = ntile(points, n= 3 ))

   points assists rebounds points_bin
1 4 2 7 1
2 4 5 7 1
3 7 4 4 1
4 8 7 6 1
5 12 7 3 2
6 13 8 8 2
7 15 5 9 2
8 18 4 9 2
9 22 5 12 3
10 23 11 11 3
11 23 13 8 3
12 25 8 9 3

โปรดทราบว่าแต่ละแถวได้รับการกำหนดกล่องตั้งแต่ 1 ถึง 3 ตามค่าคอลัมน์ จุด

วิธีที่ดีที่สุดคือใช้ฟังก์ชัน ntile() เมื่อคุณต้องการให้แสดงค่าจำนวนเต็มในแต่ละแถว แทนที่จะแสดงช่วงเวลาที่ระบุช่วงของถังขยะ

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

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

วิธีแทนที่ค่าตามเงื่อนไขใน data frame ใน R
วิธีการคำนวณค่าเฉลี่ยที่ถูกตัดแต่งใน R
วิธีการคำนวณค่าเฉลี่ยตามเงื่อนไขใน R

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

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