R 이모저모
-
R과 네트워크 분석 (1)R 이모저모 2019. 5. 12. 14:41
R과 네트워크 분석 이번 포스팅에서는 소셜 네트워크 분석을 위한 데이터를 R에서 구성하고 분석하는 것을 다뤄보겠습니다. 또한, 데이터 시각화를 효율적으로 해주는 D3기반 패키지(networkD3)의 사용법에 대해서도 다뤄보겠습니다. 1. 네트워크 분석 내용에 들어가기 앞서 네트워크 분석이 어떤 분석이며 어디에 써먹는 것인지 궁금할 겁니다. 네트워크 분석은 독립된 객체들간의 관계들을 표현한 그래프(=네트워크)를 분석하는 이론으로 수학 이론 중 하나인 그래프 이론의 일부라고 볼 수 있습니다. 네트워크 형식으로 이뤄진 데이터들이 워낙 다양하게 있기에 사회학, 생물학, 물리통계, 컴퓨터 공학 등 다양한 학문에서 사용되며, 특히 최근에는 SNS의 발전과 더불어 사회에 관련된 데이터들을 분석하는데 최적화 되있다는 ..
-
Shiny : 대시보드 배포하기R 이모저모 2019. 4. 24. 21:55
Shiny : 대시보드 배포하기 지난 9일에 올린 'R과 대시보드 : Shiny' 포스팅에서 우리는 shiny를 구성하는 기초 요소들과 그것들이 어떤 상호작용을 통해 shiny앱을 구성하는지를 보았습니다. 이번 글은 좀 더 나아가서, 직접 제작한 대시보드를 shinyapps.io를 통해 배포하는 법을 살펴보고, 예제가 어떻게 만들어졌고 웹에 구동되고 있는지 보도록 하겠습니다. 예제는 제가 올린 shinyapp을 활용할 것이며, 주소는 아래와 같습니다. https://jmnam47.shinyapps.io/post9_shinyapp/ 1. shinyapps.io 사이트 이해 Shiny는 받는 사용자가 R환경을 가지고 있다면 매우 쉽게 사용할 수 있습니다. Gist에 UI.R, SERVER.R이란 이름으로 저..
-
R과 워드R 이모저모 2019. 4. 19. 21:40
R과 워드 지금까지 포스팅은 비교적 많이 알려진 소재들을 다뤘었는데요, 이번에는 좀 색다른 주제를 다뤄보고자 합니다. 바로 워드에 있는 데이터를 R을 활용하여 가져오는 것입니다. 단순히 텍스트를 가져오는 것 뿐만 아니라 스타일, 테이블 등 다양한 객체를 가져오려면 R에서 워드 구조를 읽을 수 있는 방법을 알아야 하며, 동시에 XML구조 또한 알고 있어야합니다. 1. 워드와 XML, 그리고 R 워드를 R에서 효과적으로 읽으려면 XML구조를 기반으로 읽어야합니다. XML는 데이터를 기술하는데 특화된 언어로, 미리 짜여진 구조를 이용하여 보다 효과적으로 데이터를 읽는데 큰 도움을 주게 됩니다. R에서 xml을 읽기 위해서 아마 웹크롤링을 위해 많이 봤을 패키지인 XML패키지를 사용합니다. 이 패키지는 xml문..
-
R과 대시보드 : ShinyR 이모저모 2019. 4. 9. 19:54
R과 Shiny 최근 R이 이슈가 되고 있는 이유 중 하나는 사용의 편리함 때문입니다. R에서는 보다 편한 스크립트 실행 환경인 RStudio를 제공하지만, 여기서 더 나아가서 배표를 위한 R Markdown, 그리고 동적 대시보드/앱 등을 구현하기 위한 Shiny를 제공합니다. Shiny는 분석 업무의 결과를 R을 잘 모르는 현업에 배포할 때 매우 효율적인 수단이지만, 기존 R 스크립트와는 다른 이질적인 분위기와 제대로 된 가이드라인이 별로 없어서 접하기가 어려운 단점이 있습니다. 그래서 이번 포스팅에선 이 Shiny의 기초에 대해서 다뤄보고자 합니다. [예시] https://youtu.be/wKG3LZXG_8g 1. UI와 서버 Shiny는 크게 UI와 서버라는 두 가지 요소로 구성되어 있습니다. 이..
-
R과 병렬처리R 이모저모 2019. 4. 3. 23:24
R과 병렬처리 R은 인터프리터 언어로 편리한 사용법 대신 속도 부분에서 한계가 많다고 지적을 받는 경우가 종종 있으며, 실제로 속도 때문에 불편함을 겪는 분들도 종종 있습니다. 하지만 정말 큰 데이터 처리가 아니라면 처리속도가 느린 대부분의 경우는 병렬처리가 되지 않거나 벡터/행렬 연산이 기반이 되지 않아 R에서 최적화된 연산을 하지 못해서 느린 경우가 많습니다.(간혹 비효율적인 패키지 사용시에도 발생합니다.) 그래서 오늘은 R에서의 병렬처리에 대해 간단히 다뤄보고자 합니다 1. apply 함수들 apply 함수는 엄밀히 말하면 병렬처리를 해주는 함수들은 아니지만(이는 apply에 적용하는 함수 function(x)에 print를 넣어보면 알 수 있습니다.), 후에 나올 foreach의 결과 산출 과정과..