-
[R] 3. R 실전 예제 Part 2CSE/R 2015. 7. 13. 20:06
Chapter 2. R 실전 예제 (Continue)
앞의 예제를 통해 R이 비정형 데이터로 워드 클라우드를 만들었습니다. 워드 클라우드는 빈도 수, 수치 값을 정확히 알 수가 없는 단점이 있습니다. 그래서 이번엔 그래프 형식의 결과물을 내보도록 하겠습니다.
1. R을 실행하여 작업 디렉토리를 설정합니다.
setwd("c:\\r_temp")
2. 필요한 패키지를 설치하도록 합니다.
install.packages("stringr")library(stringr)library(KoNLP)library(wordcloud)useSejongDic()3. 분석할 원본 자료를 변수에 불러들여서 명사만 분리합니다.
txt <- readLines("exo_data.txt")
word <- sapply(txt, extractNoun, USE.NAMES=F)
4. 단어 수가 짧은 키워드는 제외시키겠습니다.
c <- unlist(word)
word <- Filter(function(x) {nchar(x) >= 2}, c)
5. 의미없는 단어나 숫자, 기호 등을 제거합니다.
res <- str_replace_all(word, "[^[:alpha:]]", "") #영문, 한글 아닌것 전부제거
res <- res[res !=""] #공백 제거
res <- gsub("category", "", res)
이하 생략..
NROW(res)
6. 최종적으로 걸러낸 파일을 저장하여서 집계합니다.write(res, "exo_filtered2.txt")res2 <- read.table("exo_filtered2.txt")wordcount <- table(res2)head(sort(wordcount, decreasing=T), 30)7. 가장 상위10개만 골라서 PIE 차트로 출력합니다top10 <- head(sort(wordcount, decreasing=T), 10)pie(top10)savePlot("word_top.png", type="png")
8. 위 그림은 너무 허접해보이므로 색깔을 알록달록 꾸며보겠습니다.
pie(top10, col=rainbow(10), radius=1)
savePlot("word_top2.png", type="png")9. 위 차트들의 수치가 나오지 않아서 정확하지 않아보입니다. 수치를 나타낸 도넛 차트로 나타내겠습니다.pct <- round(top10/sum(top10) * 100, 1)lab <- paste(names(top10), "\n", pct, "%")pie(top10, main="내 블로그 인기 키워드 TOP 10", col=rainbow(10),cex=0.8, labels=lab)par(new=T)pie(top10, radius=0.6, col="white", labels=NA, border=NA)savePlot("word_top3.png", type="png")10. 다음은 바 형태의 차트로 표시해 보겠습니다.bchart <- head(sort(wordcount, decreasing=T), 10)bplot <- barplot(bchart, main="내 블로그 인기 키워드 TOP 10", col=rainbow(10), cex.names=0.7, las = 2, ylim=c(0, 70))pct <- round(bchart/sum(bchart) * 100, 1)text(x = bplot, y = bchart * 1.05, labels = paste("(", pct, "%", ")"), col = "black", cex = 0.7)text(x = bplot, y = bchart * 0.95, labels = paste(bchart, "건"), col = "black", cex = 0.7)savePlot("word_top4.png", type="png")비정형 데이터를 차트화하는 예제를 진행해 보았습니다.
다음 장에서는 정형 데이터에 대한 분석을 진행하겠습니다.
* 이 포스트는 서적 'R라뷰: R을 활용한 데이터 분석 입문편'을 참고하여 작성한 포스트입니다.
'CSE > R' 카테고리의 다른 글
[R] 2. R 실전 예제 Part 1 (0) 2015.07.13 [R] 1. R 설치 및 구동 (0) 2015.07.13