1. Learn
  2. /
  3. Courses
  4. /
  5. R을 활용한 감성 분석

Connected

Exercise

박스 플롯

여러 분포를 한눈에 비교하는 가장 간편한 방법 중 하나가 박스 플롯입니다. 이 코드를 활용하면 여러 박스 플롯을 만들어 간결한 시각 자료를 완성할 수 있습니다.

이 연습 문제에서는 all_book_polarity 객체가 이미 로드되어 있습니다. 이 데이터 프레임은 book과 polarity 두 열로 구성되며, qdap의 polarity() 함수를 적용한 모든 도서 데이터를 포함합니다. 아래는 이 대형 객체의 첫 3개 행입니다.

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

이 연습 문제에서는 비정형 배열(ragged array)에 함수를 적용할 수 있는 tapply()를 소개합니다. 값 벡터와 요인(factor) 벡터를 입력하면, 각 요인과 값의 조합에 대해 세 번째 매개변수로 지정한 함수(예: min())가 적용됩니다. 아래는 두 벡터에 tapply()를 사용한 예시 코드입니다.

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

결과는 배열로 반환되며, Group1의 값은 2(1+1), Group2의 값은 4(2+2)입니다.

Instructions

100 XP
  • 이미 로드된 all_book_polarity를 str()로 살펴보세요.
  • tapply()에 all_book_polarity$polarity, all_book_polarity$book, summary() 함수를 차례로 전달하세요. 이렇게 하면 4개 도서의 polarity() 점수에 대한 요약 통계가 출력됩니다. Oz와 Huck Finn의 평균이 Agamemnon이나 Moby Dick보다 높게 나올 것으로 예상됩니다. 중앙값(median)을 유심히 살펴보세요.
  • ggplot()에 all_book_polarity를 전달하여 박스 플롯을 만드세요.
    • 심미 요소(aesthetics)는 aes(x = book, y = polarity)로 설정하세요.
    • +를 사용하여 col = "darkred"를 지정한 geom_boxplot()을 추가하세요. 각 박스 안의 중앙값을 나타내는 굵은 선을 주의 깊게 살펴보세요.
    • 다음으로 geom_jitter() 레이어를 추가하여 각 단어에 해당하는 점을 표시하세요.