그것이 R고 싶다 본문

Programming

그것이 R고 싶다

halatha 2018. 8. 23. 16:49

초보자가 R의 매력을 느낄 수 있는 책

장점이자 단점

예제 하나를 할 때마다 거의 하나 이상의 package를 설치해야 한다. 설치부터 자세히 설명해주니 초보자에게 좋기는 하지만, 설치에 문제가 생기는 경우는 난감할 수 있다.

장점

초보자를 대상으로 자세하게 썼다(하지만 여전히 R 설정 관련된 부분을 내가 잘 몰라서인지 쉽게 설치하지 못하는 부분도 있다. 특히 저자는 윈도우에서 했고, 나는 맥에서 해서 더 차이가 있는 듯). 특히 클라우드 부분에서 aws/애저 가입부터 설명을 한 걸 보고 정말 신경을 많이 썼다는 생각이 들었다.
심지어 R Studio editor의 theme을 바꾸는 부분까지 설명하기도 한다(66p).

하지만 이렇게 R Studio의 version/platform 차이로 인해 저자의 설명과 차이가 나는 부분도 있다(74p)

소소한 부분이지만 책 전체가 컬러여서 아무 페이지나 펴도 명확하게 소스와 설명 구분이 쉽고 보기 좋다

단점

(만약 저작권 문제가 없다면) 실습 데이터 파일을 출판사 페이지나 github에 올려줬다면 더 편하게 따라할 수 있었을 거 같다.

part I

언제나 그렇듯 시작하면서 필요한 설치부터 진행하기로 했다. R이나 R Studio는 이미 예전에 설치했는데, mro라는 package를 설치해 병렬 프로세스를 사용할 수 있다기에 당연히 해보았다. 병렬 처리는 개발자라면 누구나 꿈꾸는(?) 부분이니까.

하지만 언제나 그렇듯 잘 되지 않았다.

이리 저리 뜯어보기에는 지금 바쁘기도 하고, 이게 없다고 예제를 따라하는 데 문제가 생기지는 않을 거 같아 일단은 지나가기로 했다. mro 설치는 https://mran.microsoft.com/download서 받아서 해야 하고, 오류가 발생해서 찾아보니(https://github.com/IRkernel/IRkernel/issues/300) X11 설치가 필요해 https://www.xquartz.org/ 서 다운로드를 받았는데, 특히 이 부분이 엄청나게 오래 걸렸다. 왜 이렇게 느린 지 모르겠지만, 거의 4시간 정도 걸려서 받았는데 결국 실패. microsoft의 문서를 보면서 하나씩 다시 설치해봐도 안 되어서 결국 다시 설치할 수 밖에 없었다. 

오류가 발생해서 그런지 나중에 sqldf, dplyr, tidyr같이 나 같은 초보자도 이름은 아는 package조차 설치가 안 되어서 결국 제거하고 다시 설치를 했다.

R 재설치 후 R Studio도 다시 받아 설치하니 library를 설치할 수 있었다

part II

역시 기본 문법 부분을 따라하는 데는 아무 문제가 없다. 다만 문법이 익숙하지 않아서 오는 부분은 여전히 어렵긴 하다.

3차원 배열을 생성하는데, 값이 채워지는 순서가 왠지 어색하다. array index가 1 부터 시작하는 것도 여전히 어색한데, 뒤쪽부터 값이 채워지니 더 어색하게 느껴졌다.

R 사용자들이 여전히 python이 따라오지 못한다고 말하는 부분들이 있는데 대표적인 게 data frame이다.

특히나 어색했던 건 파이프가 %>%였다는 점. |를 사용하지 않은 이유가 있을 거 같긴 한데, 방식이야 리눅스를 사용하는 프로그래머들이라면 누구나 익숙하겠지만 파이프 문자가 |도 아니고 %>%라는 건 정말 어색했다. 그 뒤에 나오는 항목들도 데이터 조작을 위해 모두 필수적인 함수들로 보였는데, select, filter나 *_join 함수들은 아예 sql query를 함수로 만들어 둔 거 같아 작업하는 데 편해보였다. R만의 장점이 조금씩 눈에 들어오기 시작한 시점이었다.

part III

기본 문법을 지나 조금씩 응용을 하기 시작하는 부분이다. data.go.kr에서 데이터를 가져와 진행을 하는데, 사이트는 .go.kr이 붙는 사이트치고 정말 사용하기 편하게 되어 있었다. 건강 관련 정보를 받을 때는 책의 설명을 따라 2015년 데이터를 받고 locale을 euc-kr로 한 후 import를 실행하니 출력하는 데는 한글 인식에 문제가 없었다. 하지만 ‘대기업집단 현황' 자료를 받으려고 하니(https://www.data.go.kr/dataset/3043452/fileData.do), 아니나 다를까, 연도를 선택하는 버튼에서 연도를 선택할 수가 없었다(설마 internet explorer가 아니라서?). 혹시 저자가 자료를 받을 수 있게 해놨을까 싶어 출판사 페이지에 갔는데(http://www.hanbit.co.kr/src/10088) 아쉽게도 정말 예제 소스만 있고, 이런 자료는 없었다. (만약 저작권 문제가 없다면) 기왕에 자료 파일도 같이 올려줬다면 더 좋았을 거다.

174p json 자료(https://api.github.com/users/hadley/orgs) 받아서 data frame으로 보기

이외에도 서울시 open API 이용하기, MySQL 연동 방법, R에 자체적으로 포함된 데이터셋, 난수 생성 등을 통해 데이터 이용하는 방법 등을 설명한다. 각 부분마다 깊이있는 이야기를 하지는 않지만, 기본적인 이용 방법을 자세히 설명하고 있다.

그 다음 장에서는 좀 더 나아가 기본적인 통계를 설명하고, (나 같은 초보에게는) 고급 데이터 분석 기법들, decision tree, random forest 등의 기초적인 실행 방법과 다양한 시각화 기법, graph를 그리거나 R markdown 문서화 등의 방법들을 설명한다.

241p random forest
256p ggplot 예제
259p ggplot 예제
281p ggThemeAssist 예제
379p plotly 예제

총평

R 초보자들이 매력을 느끼기에 충분한 책이다. 개인적으로는 다른 R책을 볼 때보다 훨씬 강하게 R의 유용함을 느낄 수 있었다. 특히 시각화 부분에서는 python도 많이 편해지긴 했지만, 이래서 R 사용자들이 R이 아직 훨씬 앞섰다고 이야기한다는 걸 이해할 수 있었다. 조금씩 R에 친숙해져서 개인적인 데이터로 해보고 싶다는 생각이 들었다.

다만 앞서 정리했듯이 패키지 설치로 인해 중간 중간 맥이 끊기는 점(생각보다 설치에 시간이 많이 걸리기도 하고, 실패하는 경우도 있으므로)과, 실습 데이터를 사용하기가 불편했다는 점이 아쉬웠다. 이 부분만 보강하면 정말 R 초보자들에게 굉장히 매력적인 책이 될 거라고 생각한다.

Comments