1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Phân tích cảm xúc trong R

Connected

Bài tập

Biểu đồ hộp (Box plot)

Một cách đơn giản để so sánh nhiều phân phối là dùng biểu đồ hộp. Đoạn mã này sẽ giúp bạn dựng nhiều biểu đồ hộp để có một hình trực quan gọn gàng.

Trong bài này, đối tượng all_book_polarity đã được nạp sẵn. Data frame này có hai cột, book và polarity. Nó bao gồm tất cả các cuốn sách đã được áp dụng hàm polarity() của qdap. Dưới đây là 3 dòng đầu của đối tượng lớn này.

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

Bài này giới thiệu tapply() cho phép bạn áp dụng hàm trên một mảng “rổ rá”. Bạn truyền vào một vector giá trị rồi đến một vector nhân tố (factor). Với mỗi tổ hợp nhân tố–giá trị, tham số thứ ba là một hàm như min() sẽ được áp dụng. Ví dụ, đây là đoạn mã dùng tapply() trên hai vector.

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

Kết quả là một mảng trong đó Group1 có giá trị 2 (1+1) và Group2 có giá trị 4 (2+2).

Hướng dẫn

100 XP
  • Vì đã được nạp sẵn, hãy khám phá all_book_polarity với str().
  • Dùng tapply(), truyền vào all_book_polarity$polarity, all_book_polarity$book và hàm summary(). Việc này sẽ in thống kê tóm tắt cho 4 cuốn sách theo điểm polarity() của chúng. Bạn có thể kỳ vọng Oz và Huck Finn có trung bình cao hơn Agamemnon hoặc Moby Dick. Hãy chú ý đặc biệt đến trung vị (median).
  • Tạo biểu đồ hộp bằng ggplot() bằng cách truyền vào all_book_polarity.
    • Thiết lập thẩm mỹ aes(x = book, y = polarity).
    • Dùng dấu + để thêm geom_boxplot() với col = "darkred". Hãy chú ý đường đậm ở giữa mỗi hộp biểu diễn trung vị.
    • Tiếp theo thêm một lớp nữa là geom_jitter() để bổ sung các điểm cho từng từ.