วิธีใช้ฟังก์ชัน cut() ใน r


ฟังก์ชัน cut() ใน R สามารถใช้เพื่อตัดช่วงของค่าลงในถังขยะและระบุป้ายกำกับสำหรับแต่ละถังขยะได้

ฟังก์ชันนี้ใช้ไวยากรณ์ต่อไปนี้:

ตัด (x, ตัวแบ่ง, ป้ายกำกับ = NULL, …)

ทอง:

  • x : ชื่อเวกเตอร์
  • ตัวแบ่ง : จำนวนตัวแบ่งที่จะสร้างหรือเวกเตอร์ของจุดพัก
  • ป้ายกำกับ : ป้ายกำกับสำหรับถังขยะผลลัพธ์

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในสถานการณ์ต่างๆ โดยมีกรอบข้อมูลต่อไปนี้ใน R:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'),
                 points=c(4, 7, 8, 12, 14, 16, 20, 26, 36))

#view data frame
df

  player points
1 to 4
2 B 7
3 C 8
4 D 12
5 E 14
6 F 16
7 G 20
8:26 a.m.
9 I 36

ตัวอย่างที่ 1: ตัดเวกเตอร์ตามจำนวนการแตก

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

 #create new column that places each player into four categories based on points
df$category <- cut(df$points, breaks= 4 )

#view updated data frame
df

  player points category
1 to 4 (3.97.12]
2 B 7 (3.97.12]
3 C 8 (3.97.12]
4 D 12 (3.97.12]
5 E 14 (12.20]
6 F 16 (12.20]
7 G 20 (12.20]
8:26 a.m. (20.28]
9 I 36 (28.36]

เนื่องจากเราระบุ breaks=4 ฟังก์ชัน cut() จะแบ่งค่าในคอลัมน์จุดออกเป็นกลุ่มที่มีขนาดเท่ากันสี่ขนาด

นี่คือวิธีที่ฟังก์ชัน cut() ทำสิ่งนี้:

  • ขั้นแรก เขาพบความแตกต่างระหว่างค่าที่ใหญ่ที่สุดและน้อยที่สุดในคอลัมน์คะแนน (36 – 4 = 32)
  • จากนั้นเขาก็หารผลต่างนี้ด้วย 4 (32/4 = 8)
  • ผลลัพธ์ที่ได้คือถังขยะสี่ใบกว้างอันละ 8 อัน

หมายเหตุ : ช่วงเวลาต่ำสุดคือ 3.97 แทนที่จะเป็น 4 เนื่องจากฟังก์ชันการทำงานต่อไปนี้จาก เอกสารประกอบ cut() :

เมื่อระบุการหยุดชั่วคราวเป็นตัวเลขตัวเดียว ช่วงของข้อมูลจะถูกแบ่งออกเป็นช่วงของการหยุดชั่วคราวที่มีความยาวเท่ากัน จากนั้นขีดจำกัดด้านนอกจะถูกย้ายออกไปจากช่วง 0.1% เพื่อให้แน่ใจว่าค่าผิดปกติตกอยู่ภายในทั้งสองช่วงของการหยุดชั่วคราว

ตัวอย่างที่ 2: เวกเตอร์การตัดตามจุดพักเฉพาะ

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

 #create new column based on specific break points
df$category <- cut(df$points, breaks=c(0, 10, 15, 20, 40))

#view updated data frame
df

  player points category
1 to 4 (0.10]
2 B 7 (0.10]
3 C 8 (0.10]
4 D 12 (10.15]
5 E 14 (10.15]
6 F 16 (15.20]
7 G 20 (15.20]
8:26 a.m. (20.40)
9 I 36 (20.40]

ฟังก์ชัน cut() แบ่งผู้เล่นแต่ละคนออกเป็นหมวดหมู่ตามเวกเตอร์เฉพาะของเบรกพอยต์ที่เราให้ไว้

ตัวอย่างที่ 3: ตัดเวกเตอร์โดยใช้เบรกพอยต์และป้ายกำกับเฉพาะ

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

 #create new column based on values in points column
df$category <- cut(df$points,
                   breaks=c(0, 10, 15, 20, 40),
                   labels=c(' Bad ', ' OK ', ' Good ', ' Great '))

#view updated data frame
df

  player points category
1 A 4 Bad
2 B 7 Bad
3 C 8 Bad
4 D 12 OK
5 E 14 OK
6 F 16 Good
7 G 20 Good
8:26 A.M. Great
9 I 36 Great

คอลัมน์ หมวดหมู่ ใหม่จะจัดอันดับผู้เล่นแต่ละคนว่าแย่ ตกลง ดี หรือยอดเยี่ยม โดยพิจารณาจากค่าที่สอดคล้องกันในคอลัมน์ คะแนน

หมายเหตุ : จำนวนป้ายกำกับจะต้องน้อยกว่าจำนวนเบรกพอยต์หนึ่งรายการเสมอเพื่อหลีกเลี่ยงข้อผิดพลาดต่อไปนี้:

 Error in cut.default(df$points, breaks = c(0, 10, 15, 20, 40), labels = c("Bad",: 
  lengths of 'breaks' and 'labels' differ

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

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

วิธีใช้ฟังก์ชัน tabulate() ใน R
วิธีใช้ฟังก์ชัน split() ใน R
วิธีใช้ฟังก์ชัน match() ใน R
วิธีใช้ฟังก์ชัน Replicate() ใน R

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

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