เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Box Plot

วิธีง่ายๆ ในการเปรียบเทียบการกระจายตัวของข้อมูลหลายชุดคือการใช้ box plot โค้ดในแบบฝึกหัดนี้จะช่วยสร้าง box plot หลายกราฟเพื่อนำเสนอภาพรวมอย่างกระชับ

ออบเจกต์ all_book_polarity ถูกโหลดไว้แล้ว data frame นี้มีสองคอลัมน์คือ book และ polarity โดยนำหนังสือทุกเล่มมาผ่านฟังก์ชัน polarity() ของ qdap ตัวอย่าง 3 แถวแรกของออบเจกต์นี้มีดังนี้

book polarity
14 huck 0.2773501
22 huck 0.2581989
26 huck -0.5773503

แบบฝึกหัดนี้แนะนำฟังก์ชัน tapply() ซึ่งช่วยให้นำฟังก์ชันไปใช้กับ ragged array ได้ โดยรับเวกเตอร์ของค่าและเวกเตอร์ของ factor เป็น input สำหรับแต่ละคู่ factor-ค่า พารามิเตอร์ตัวที่สามซึ่งเป็นฟังก์ชัน เช่น min() จะถูกนำไปใช้กับข้อมูลนั้น ตัวอย่างเช่น โค้ดด้านล่างแสดงการใช้ tapply() กับสองเวกเตอร์

f1 <- as.factor(c("Group1", "Group2", "Group1", "Group2"))
stat1 <- c(1, 2, 1, 2)
tapply(stat1, f1, sum)

ผลลัพธ์จะเป็น array ที่ Group1 มีค่า 2 (1+1) และ Group2 มีค่า 4 (2+2)

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์ความรู้สึกใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เนื่องจากโหลดข้อมูลไว้แล้ว ให้ตรวจสอบโครงสร้างของ all_book_polarity ด้วย str()
  • ใช้ tapply() โดยส่ง all_book_polarity$polarity, all_book_polarity$book และฟังก์ชัน summary() เป็น argument เพื่อแสดงสถิติสรุปของ polarity() สำหรับหนังสือทั้ง 4 เล่ม โดยคาดว่า Oz และ Huck Finn จะมีค่าเฉลี่ยสูงกว่า Agamemnon หรือ Moby Dick ให้สังเกตค่า median อย่างใกล้ชิด
  • สร้าง box plot ด้วย ggplot() โดยส่ง all_book_polarity เป็นข้อมูล
    • กำหนด aesthetics เป็น aes(x = book, y = polarity)
    • เพิ่ม geom_boxplot() ด้วย col = "darkred" โดยใช้ + ให้สังเกตเส้นสีเข้มในแต่ละกล่องซึ่งแทนค่า median
    • จากนั้นเพิ่มเลเยอร์ geom_jitter() เพื่อแสดงจุดข้อมูลของแต่ละคำ

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Examine
___

# Summary by document
___

# Box plot
ggplot(___, aes(x = ___, y = ___)) +
  ___(fill = c("#bada55", "#F00B42", "#F001ED", "#BA6E15"), col = "___") +
  ___(position = position_jitter(width = 0.1, height = 0), alpha = 0.02) +
  theme_gdocs() +
  ggtitle("Book Polarity")
แก้ไขและรันโค้ด