สร้าง factor แบบมีลำดับ
ลองดูกราฟที่แสดงอยู่ทางขวา กราฟดูดีทีเดียว แต่สังเกตลำดับของแท่งกราฟดู! เนื่องจากตอนสร้าง factor ไม่ได้ระบุลำดับไว้ R จึงเรียงระดับตามตัวอักษรแทน ซึ่งเราทราบกันดีแล้วว่า credit rating มีลำดับของตัวเอง และกราฟควรสะท้อนลำดับนั้นด้วย!
เป็นการทบทวน ลำดับของ credit rating จาก ความเสี่ยงน้อยที่สุด ไปยัง ความเสี่ยงมากที่สุด คือ:
AAA, AA, A, BBB, BB, B, CCC, CC, C, D
ในการกำหนดลำดับให้กับ factor มี 2 วิธี
วิธีแรก — ระบุ ordered = TRUE พร้อมกำหนด levels ตามลำดับจากน้อยไปมากตอนสร้าง factor:
credit_rating <- c("AAA", "AA", "A", "BBB", "AA", "BBB", "A")
credit_factor_ordered <- factor(credit_rating, ordered = TRUE,
levels = c("AAA", "AA", "A", "BBB"))
วิธีที่สอง — สำหรับ factor ที่ยังไม่มีลำดับอย่าง credit_factor ให้ใช้ฟังก์ชัน ordered():
ordered(credit_factor, levels = c("AAA", "AA", "A", "BBB"))
ทั้งสองวิธีให้ผลลัพธ์เหมือนกัน:
credit_factor_ordered
[1] AAA AA A BBB AA BBB A
Levels: AAA < AA < A < BBB
สังเกตเครื่องหมาย < ที่แสดงลำดับของ levels ซึ่งไม่มีมาก่อน!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R เบื้องต้นสำหรับการเงิน
คำแนะนำการฝึกหัด
- character vector
credit_ratingอยู่ใน workspace ของคุณแล้ว - ใช้ฟังก์ชัน
unique()กับcredit_ratingเพื่อแสดงเฉพาะค่าที่ไม่ซ้ำกันใน character vector ค่าเหล่านี้จะเป็น levels ของคุณ - ใช้
factor()เพื่อสร้าง ordered factor สำหรับcredit_ratingแล้วเก็บไว้ในตัวแปรcredit_factor_orderedอย่าลืมระบุ levels จากความเสี่ยงน้อยไปมาก! - Plot
credit_factor_orderedแล้วสังเกตลำดับใหม่ของแท่งกราฟ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Use unique() to find unique words
unique(___)
# Create an ordered factor
credit_factor_ordered <- factor(___, ordered = ___, levels = c(___))
# Plot credit_factor_ordered