-
R과 Data WranglingR 이모저모 2019. 8. 19. 23:04
오랜만에 써보게 되는 이번 글에서 다룰 주제는 R에서의 Data wrangling입니다. Data Wrangling은 '원자료(raw data)를 또다른 형태로 수작업으로 전환하거나 매핑하는 과정이다.'라고 정의되며, 흔히 분석 전의 전처리 과정에서 많이 마주하게 되는 문제들입니다. 예전 포스팅에서 다뤘던 dplyr 패키지가 R에서 보다 효율적인 데이터 처리를 할 수 있는 도구를 제공해주나, 이번에는 tidyr이라는 패키지까지 활용하여 보다 편하고 빠른 데이터 처리에 대한 팁들을 얘기해보고자 합니다. 1. Spread와 Gather 데이터 분석을 배우거나 관련 업무를 하는 많은 분들이 겪는 골칫거리 중 하나는 데이터를 n*m 데이터를 n' *m', 즉 다른 형태로 바꿔야 할 때 일 것입니다. 왠만한 작업..
-
웹 크롤링 기초와 RR 이모저모 2019. 7. 21. 23:23
이번 포스팅에서는 앞서 올렸던 위키피디아 데이터 가져오기를 어떻게 구현하는지에 대해 설명하고자 합니다. 웹 크롤링 자체는 해당 사이트의 구조가 어떻냐에 많이 의존하기 때문에 쉽게 배우기 어려우나, 위키피디아는 상대적으로 단순한 구조를 취하고 있기 때문에 이 글에서 다루는 것들은 R에서 웹사이트 정보를 어떻게 가져올까에 대한 워밍업 정도로 생각하시면 될 것 같습니다. 1. XML을 통해 html 구조 불러오기 이미 R에서의 크롤링에 대해 조금이라도 검색하신 분이라면 알겠지만, R은 해당 url의 html구조를 읽어 가져오는 형식으로 웹에서 정보를 수집합니다. 따라서 html구조를 읽고, R에 맞는 형식으로 맞추기 위해서는 그에 맞는 방법을 사용해야하며, XML,rvest 패키지가 해당 기능을 제공해줍니다...
-
R로 위키 빌보드 차트 가져오기R 이모저모 2019. 6. 23. 13:55
이번 글에선 R을 이용해서 위키피디아에 있는 빌보드 상위 100곡(year-end hot-100)의 정보와 하이퍼링크를 가져오는 예제 코드를 업로드하겠습니다. 코드는 다음과 같습니다. 사용방법은 함수 scrap_wiki_billboard에 원하는 년도를 숫자 벡터로(예 : 2015:2018) 집어넣으면 되며, 결과는 Title(곡 제목), Artist.s.(가수), rank(해당년도 랭킹), year(년도), song_hplink(곡에 걸려있는 하이퍼링크), artists_hplink(가수에 걸려있는 하이퍼링크, 복수의 가수가 참여한 경우 ' & '으로 합침)의 6개 칼럼으로 이루어진 데이터프레임이 나오게 됩니다. 해당 데이터프레임으로 특정 곡이 해당 기간동안 몇 번 빌보드에 올라왔는지, 가수는 누구인지..
-
ggplot2 : R 시각화R 이모저모 2019. 6. 10. 19:06
ggplot2를 활용한 시각화 이번 포스팅에서는 R에서 가장 보편적으로 쓰이는 시각화 툴 중 하나인 ggplot2에 대해서 다뤄보고자 합니다. 비록 ggplot2가 속도면에서 문제가 있어 다른 대안을 찾는 추세긴 하나, 여전히 쉽고 강력한 리포팅 기능을 자랑한다는 점은 부인할 수 없는 만큼 기초를 배워두면 R을 사용하는데 있어 큰 도움이 될 것입니다. 0. ggplot의 구조 ggplot은 비교적 직관적인 구조로 이루어져 있습니다. 먼저 ggplot()이라는 함수로 plot을 선언한 후 안에 aes(aesthetic) 함수를 이용해서 원하는 값(예 : 산점도의 x, y좌표)을 넣습니다. 이 때 직접 데이터를 집어넣어도 되며, ggplot함수에서 데이터를 선언하여 앞으로 쓸 데이터를 지정해줘도 됩니다. 데..
-
R과 네트워크 분석(2)R 이모저모 2019. 5. 29. 11:13
R과 네트워크 분석 저번 포스팅에 이어, 이번 글에서는 네트워크 분석 이론 중 노드간 상관관계를 표현하기 좋은 몇 가지에 대해 더 소개하고 D3.js, vis.js기반의 시각화 패키지들에 대해 다뤄보겠습니다. 1. Power Law(멱법칙)와 Scale-free network Scale-free network는 네트워크의 degree 분포가 power law를 따르는 경우를 말하며, 이러한 특성을 가진 네트워크가 현실세계를 반영한 네트워크라는 가정하고 주어진 네트워크가 fitting하는지 증명하는 것이 power law fitting의 주 목적입니다. 말은 굉장히 어렵게 되있지만 degree란 네트워크에서 객체(노드)가 얼마나 관계(엣지)를 가지는지를 말하기 때문에 결국 말하고자 하는 바는 관계를 적당히..