CSE/R 검색 결과

3개 발견
  1. 미리보기
    2015.07.13 - Palpit

    [R] 3. R 실전 예제 Part 2

  2. 미리보기
    2015.07.13 - Palpit

    [R] 2. R 실전 예제 Part 1

  3. 미리보기
    2015.07.13 - Palpit

    [R] 1. R 설치 및 구동

[R] 3. R 실전 예제 Part 2

2015.07.13 20:06 - Palpit
조회수 확인

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] 3. R 실전 예제 Part 2  (0) 2015.07.13
[R] 2. R 실전 예제 Part 1  (0) 2015.07.13
[R] 1. R 설치 및 구동  (0) 2015.07.13

다른 카테고리의 글 목록

CSE/R 카테고리의 포스트를 톺아봅니다

[R] 2. R 실전 예제 Part 1

2015.07.13 17:54 - Palpit
조회수 확인

Chapter 2. R 실전 예제 

 1. 워드 클라우드(Word Cloud)

  - 비정형 데이터를 분석하여 워드 클라우드를 생성하겠습니다.

  - 각각의 데이터 Set에 대해서는 자신이 워드 클라우드를 생성할 목적인 데이터로 진행하시면 재밌으리라 생각됩니다.

  - 혹여 없는 경우 아래 첨부파일을 통해 진행하세요.



exo_data.txt



  - 아래 명령어를 입력하여 작업 디렉토리를 지정합니다.(r_temp 폴더를 만들어 두신다음 입력하세요. r_temp에 파일을 저장합니다.)


  setwd("C:\\r_temp")



  - 다음으로 필요한 필요한 패키지에 대해서 설치 한 후 R에 Loading 하겠습니다.


  install.packages("KoNLP")

  install.packages("wordcloud")

  library(KoNLP)

  library(wordcloud)

  useSejongDic()



 



 



  - 다음은 클라우드 처리할 데이터를 변수로 읽어들입니다.



  data1 <- readLines("exo_data.txt")

  data1





  - 데이터 중에서 명사만 골라낸 후 nouns 변수에 할당합니다.



  data2 <- sapply(data1, extractNoun, USE.NAMES=F)

  data2








  - 추출된 명사를 30개 만 출력해서 확인합니다.


  head(unlist(data2), 30)







   - 추출된 데이터에 보시면 날짜, 시간 위주와 한 글자인 것들이 있습니다.

   - 위와 같은 데이터를 가려내기 위해 filter를 이용해서 다시 걸러내겠습니다.

   - 아래 예제는 2개 이상의 글자만 걸러내는 예제입니다.   


  data3 <- unlist(data2)

  data3 <- Filter(function(x) {nchar(x) >= 2}, data3)






   - 다음으로 원하지 않는 내용을 걸러내기 위한 gsub 함수를 이용하겠습니다.

   - 사용법은 아래와 같습니다.


    gsub("변경전 글자", "변경후 글자", "원본데이터")




   - 그럼 모든 숫자를 없애고, 여러 단어들을 없애서 걸러내겠습니다.

   - 먼저 숫자를 모두 없애는 명령어 입니다.


   data3 <- gsub("\\d+","", data3)             

  





   - 다음으로 제가 생각하기에 필요없는 단어들을 걸러내겠습니다.


    data3 <- gsub("palpit", "", data3)

    data3 <- gsub("log", "", data3)

    data3 <- gsub(" ", "", data3)
    data3 <- gsub("-", "", data3)
    data3 <- gsub(")", "", data3)





   - 이렇게 걸러낸 데이터를 write 해서 txt 파일로 내보내겠습니다.

    write(unlist(data3), "exo_filtered.txt")






   - 수정된 파일을 read.table 명령으로 다시 불러들입니다. 공백이 사라집니다.


    data4 <- read.table("exo_filtered.txt")




   - 화면에 출력하기 전에 결과를 확인해보겠습니다.


    nrow(data4)


  











   - 다음으로 단어들이 각각 몇 번 나왔는지 table 명령어로 정리해서 wordcount에 저장하겠습니다.


    wordcount <- table(data4)



   - 데이터가 많아서 보기 불편하다면, head와 sort 명령으로 정리 할 수 있습니다. 


    head(sort(wordcount, decreasing=T), 20)




   - 다음으로 Word Cloud 형태로 출력합니다.


    library(RColorBrewer)

    palete <- brewer.pal(9, "Set3")

    wordcloud(names(wordcount), freq=wordcount, scale=c(5, 1), rot.per=0.25,min.freq=1,

    random.order=F, random.color=T, colors=palete)

    legend(0.3, 1, "마이 블로그 랭킹 워드 ",cex=0.8, fill=NA, border=NA, bg="white",

    text.col="red", text.font=2, box.col="red")


    savePlot("exo.png", type="png")




    자 이렇게 해서 아래와 같은 word cloud가 완성되었습니다.









이렇게 해서 word cloud 예제를 해보았습니다.



다음 장에서는 그래프로 나타내기 위한 예제를 진행하도록 하겠습니다.





* 이 포스트는 서적 'R라뷰: R을 활용한 데이터 분석 입문편'을 참고하여 작성한 포스트입니다.

'CSE > R' 카테고리의 다른 글

[R] 3. R 실전 예제 Part 2  (0) 2015.07.13
[R] 2. R 실전 예제 Part 1  (0) 2015.07.13
[R] 1. R 설치 및 구동  (0) 2015.07.13

다른 카테고리의 글 목록

CSE/R 카테고리의 포스트를 톺아봅니다

[R] 1. R 설치 및 구동

2015.07.13 16:41 - Palpit
조회수 확인

Chapter 1. R 설치 및 구동

 R의 설치 및 실행하여 구동하는 것까지 진행하도록 하겠습니다.



 1. R 프로그램 설치

  - 먼저 http://cran.r-project.org/ 에 접속하여 아래 그림대로 Download R for Windows 를 클릭하여 다운받습니다.






 



  - install R for the first time => Download R 3.x.x for Windows






  - 다운받은 설치파일을 '관리자 권한으로 실행'합니다.

  - 설치 절차 중에 자신의 윈도우 bit에 맞게 한 가지만 선택하여 설치합니다.










 2. jdk 설치

  - www.oracle.com에 접속하여 Downloads 탭에 java for Developers를 클릭합니다.









 - Java Platform(JDK) 아이콘을 클릭하여 진입한 뒤, 동의를 해주신 후, 자신의 bit, OS와 맞는 버전을 다운 받아서 설치합니다.









  - 설치를 완료하고 나서, R을 실행합니다. 아래처럼 나오면 설치가 완료된 것입니다.











 3. R 패키지 설치

  - 방금 실행시킨 R에서 아래와 같은 명령어를 입력합니다.


   install.packages("plotrix")

   library(plotrix)




  - 다음 업데이트를 해줍니다. 진행하면서 계속 y 입력해주시면 됩니다.


   update.packages()



  - 설치된 패키지들의 경로를 확인하려면 아래 명령어를 입력하시면 됩니다.


   .libPaths()





  - 다음으로 패키지를 삭제하는 법을 보도록 하겠습니다.

  - 아래 명령어를 통해 삭제가능합니다.


   remove.packages("패키지명")









 이렇게 해서 R 설치와 구동에 대해 알아보았습니다.


 다음 장에서는 R을 통한 예제를 구현해보도록 하겠습니다.

 








* 이 포스트는 서적 'R라뷰: R을 활용한 데이터 분석 입문편'을 참고하여 작성한 포스트입니다.



'CSE > R' 카테고리의 다른 글

[R] 3. R 실전 예제 Part 2  (0) 2015.07.13
[R] 2. R 실전 예제 Part 1  (0) 2015.07.13
[R] 1. R 설치 및 구동  (0) 2015.07.13

다른 카테고리의 글 목록

CSE/R 카테고리의 포스트를 톺아봅니다