การแบ่งกลุ่มตัวแปรตัวเลขให้เป็น factor
Dan เพื่อนเก่าของคุณส่งรายชื่อพันธบัตรเรทติ้ง AAA จำนวน 50 รายการมาให้ในชื่อ AAA_rank โดยแต่ละรายการมีคะแนนตั้งแต่ 1-100 ที่บ่งบอกว่า Dan คิดว่าพันธบัตรนั้นจะทำกำไรได้มากแค่ไหน (100 คือทำกำไรได้มากที่สุด) คุณต้องการวิเคราะห์ข้อมูลนี้เพิ่มเติม แต่ก่อนอื่นคงจะดีถ้าสามารถจัดกลุ่มพันธบัตรตามคะแนนได้ เพื่อแบ่งเป็นกลุ่มตั้งแต่ทำกำไรน้อยไปจนถึงมากที่สุด ทำให้วิเคราะห์ได้ง่ายขึ้น
นี่คือตัวอย่างที่ดีของการสร้าง factor จาก numeric vector วิธีที่ง่ายที่สุดคือใช้ cut() ด้านล่างนี้ คะแนน 1-100 ของ Dan ถูกแบ่งออกเป็น 5 กลุ่มที่มีช่วงเท่ากัน สังเกตว่า ( ใน levels ของ factor หมายความว่า ไม่รวม ตัวเลขที่อยู่ติดกัน และ ] หมายความว่า รวม ตัวเลขนั้นไว้ในกลุ่ม
head(AAA_rank)
[1] 31 48 100 53 85 73
AAA_factor <- cut(x = AAA_rank, breaks = c(0, 20, 40, 60, 80, 100))
head(AAA_factor)
[1] (20,40] (40,60] (80,100] (40,60] (80,100] (60,80]
Levels: (0,20] (20,40] (40,60] (60,80] (80,100]
ในฟังก์ชัน cut() การใช้ breaks = ช่วยให้ระบุกลุ่มที่ต้องการให้ R แบ่งข้อมูลได้ตามต้องการ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R เบื้องต้นสำหรับการเงิน
คำแนะนำการฝึกหัด
- แทนที่จะแบ่งเป็น 5 กลุ่ม ลองแบ่งเป็น 4 กลุ่มดูสิ ใน
breaks =ให้ใช้ vector ตั้งแต่ 0 ถึง 100 โดยแต่ละค่าห่างกัน 25 แล้ว assign ไปยังAAA_factor - ชื่อของทั้ง 4 กลุ่มยังไม่สื่อความหมายมากนัก ใช้
levels()เพื่อเปลี่ยนชื่อ levels ให้เป็น"low","medium","high"และ"very_high"ตามลำดับ - แสดงผล
AAA_factorที่ตั้งชื่อแล้ว - Plot
AAA_factorเพื่อดูผลลัพธ์ที่ได้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create 4 buckets for AAA_rank using cut()
AAA_factor <- cut(x = ___, breaks = ___)
# Rename the levels
# Print AAA_factor
# Plot AAA_factor
plot(___)