Top

데이터 과학 입문자를 위한 R [설치부터 패키지 개발까지 R로 시작하는 데이터 과학]

  • 원서명R for Everyone: Advanced Analytics and Graphics (2nd Edition) (ISBN 9780134546926)
  • 지은이재리드 랜더(Jared P. Lander)
  • 옮긴이고석범
  • ISBN : 9791161750989
  • 40,000원
  • 2017년 12월 27일 펴냄
  • 페이퍼백 | 648쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

요약

R의 기초부터 프로그래밍까지 소개하고, 다양한 통계학적 방법과 일상에서 사용할 수 있는 도구들을 소개한다. 2판에서는 새로운 내용을 추가해 최신 R 커뮤니티에 소개된 내용들을 망라하고 있다. 타이디버스(Tidyverse)를 활용해 데이터 다루기, R 마크다운, 샤이니에 대한 장들이 그런 예다. 예제로 사용되는 데이터 세트들은 누구나 사용할 수 있는 것을 사용했으며, 이를 잘 정리해 저자의 웹 사이트를 통해 접근할 수 있게 했다. 이 책은 실제로 존재하는 데이터와 재미있는 문제들로 독자의 흥미를 끝까지 유지하게 한다.

추천의 글

R은 최근 5년 동안 인기가 급상승했다. 이를 보면서 독자들은 R이 새롭게 주목 받는 언어라고 생각할 수도 있다. 그렇지만 놀랍게도 R은 1993년에 소개됐다. 그럼 왜 최근에 와서 갑자기 인기가 높아졌을까? 아마도 데이터 과학이 하나의 직업 및 연구 주제로 부상했기 때문이 아닐까 생각한다. 데이터 과학의 기초적인 내용은 수십 년 동안 이어져 내려왔다. 통계학, 선형 대수, 생산 관리 연구, 인공 지능, 머신 러닝 등은 각자 최근의 데이터 과학에 이바지한다. 하지만 대부분의 컴퓨터 언어들과 달리 R은 이런 모든 기능을 단 하나의 함수 호출을 통해 사용할 수 있도록 발전해왔다.
그래서 나는 저자가 인기 도서인 초판을 다시 다듬어 최근 R 커뮤니티에서 있었던 여러 가지 혁신적인 내용을 담은 2판을 낸다는 소식에 흥분했다. R은 여러 데이터 과학 업무에 있어서 필수불가결한 도구다. 예측과 분석을 위한 여러 가지 유용한 알고리즘을 단 몇 줄의 코드를 갖고 해결할 수 있으므로 최근 데이터와 관련된 도전적인 문제들을 해결하는 훌륭한 도구다. 데이터 과학은 하나의 영역으로서 단지 수학이나 통계학에 머물지 않으며, 하나의 프로그래밍이나 기반 시설도 아니다. 이 책은 일반 독자들에게 R 언어의 힘과 표현력을 소개하는 균형 잡힌 안내서다.
나는 이 책의 저자보다 나은 R 안내서를 제공하는 저자를 알지 못한다. 그와 나는 2009년 뉴욕 머신 러닝 커뮤니티(NYC machine learning community)에서 만났다. 당시 뉴욕 데이터 커뮤니티는 모두 합쳐도 하나의 콘퍼런스장에 다 들어갈 수 있을 정도로 작았으며, 다른 모임은 아직 형성되지도 않은 시점이었다. 지난 7년 동안 그는 부상하는 데이터 과학의 최전선에 있었다.
그는 통계학 모임, 강연, 컬럼비아 대학에서의 R 코스 교육 등을 통해 프로그래머, 데이터 과학자, 언론인, 통계학자 등을 가르치며 커뮤니티의 성장을 도왔다. 그의 활동은 교육에 국한되지 않았다. 일상적인 직업에서도 크고 작은 고객을 위한 컨설팅을 하면서 이런 도구들을 활용할 수 있도록 장려했다. 그는 이 책의 초판이 출간된 후 뉴욕 R 콘퍼런스를 구성하고 수많은 모임과 콘퍼런스에서 강연했고, R을 사용해 2016년 미국 프로 농구 드래프트를 평가하는 등 R 커뮤니티에서 많은 활동을 했다.
이 책은 R의 기초에서 프로그래밍까지 소개하고, 다양한 통계학적 방법과 일상에서 사용할 수 있는 다양한 도구들을 소개한다. 2판에서는 새로운 내용을 추가해 최신 R 커뮤니티에 소개된 내용들을 망라하고 있다. 타이디버스(Tidyverse)를 활용해 데이터 다루기, R 마크다운, 샤이니에 대한 장들이 그런 예다. 예제로 사용되는 데이터 세트는 누구나 사용할 수 있는 것을 사용했으며, 이를 잘 정리해 그의 웹 사이트를 통해 접근할 수 있게 했다. 이 책은 실제로 존재하는 데이터와 재미있는 문제들을 갖고 독자의 흥미를 끝까지 유지하게 한다.

폴 딕스(시리즈 편집자)

이 책에서 다루는 내용

■ R, RStudio, R 패키지 둘러보기
■ 계산에 사용되는 R: 변수 타입, 벡터, 함수 호출 등
■ 데이터 프레임, 매트릭스, 리스트 같은 데이터 구조 탐색
■ 여러 가지 유형의 데이터 읽기
■ 매혹적이고 직관적인 통계 그래프 만들기
■ 사용자 정의 함수 작성
■ if, ifesle 등을 사용한 프로그램 컨트롤과 복잡한 조건 만들기
■ 그룹별 데이터 조작
■ 복수의 데이터 세트를 결합하고 구조 바꾸기
■ R을 사용한 문자열 조작과 정규 표현식 다루기
■ 정규, 이항, 포아송 분포 만들기
■ 선형, 일반화 선형, 비선형 모형 만들기
■ 기초 요약 통계: 평균, 표준편차, t-검정
■ 머신 러닝 모형 학습
■ 모형의 질 평가와 변수 선택법
■ 일래스틱 넷과 베이즈 방법을 사용해 과대적합을 막고 변수 선택 실행하기
■ 일변량, 다변량 시계열 데이터 분석
■ K-평균, 계층적 군집화
■ 니터(knitr)를 사용해 레포트, 프리젠테이션, 웹 페이지 만들기
■ R 마크다운과 htmlwidgets을 사용한 인터랙티브 데이터 시각화
■ 샤이니(Shiny)로 대시보드 구현
■ devtools, Rcpp와 함께 R 패키지 만들기

이 책의 대상 독자

R 언어로 하는 데이터 과학의 전반적인 내용을 다루므로 데이터 과학 입문자에게 안성맞춤인 안내서다. 이 책을 다 읽고 나면, R 프로그램 작성뿐만 아니라 가장 많이 사용하는 통계 방법들을 모두 사용할 수 있게 될 것이다.

이 책의 구성

1장, ‘R 설치’에서는 R을 다운로드하고 설치하는 방법을 소개한다. 여러 가지 운영체제를 포함해 32비트와 64비트 버전의 차이도 설명한다. R을 설치할 장소에 대한 조언도 들어 있다.
2장, ‘R 환경’에서는 R 사용법에 대한 개론으로, RStudio에 사용하는 방법을 중점적으로 다룬다. RStudio의 프로젝트 기능, 버전 관리 도구인 깃을 사용하고 RStudio를 개별화하는 방법도 소개한다.
3장, ‘R 패키지’에서는 R 패키지를 찾는 방법, 설치하고 로딩하는 방법을 다룬다.
4장, ‘R의 기초’에서는 R을 갖고 수학 계산을 해본다. 숫자형(Numeric), 문자형(Character), 날짜(Date), 벡터 등과 같은 변수의 타입을 소개하고, 함수를 호출하고 함수에 대한 도움말 문서를 찾는 법을 소개한다.
5장, ‘고급 데이터 구조’에서는 가장 강력하면서 자주 사용되는 데이터 구조인 데이터 프레임과 함께 매트릭스, 리스트 등을 다룬다.
6장, ‘R로 데이터 읽어 오기’에서는 R로 데이터를 가져오는 방법을 소개한다. 데이터 분석 이전에 R로 먼저 가져와야 할 것이다. CSV 파일이나 데이터베이스 등의 데이터를 읽는 등 데이터를 갖고 오는 방법은 다양하다.
7장, ‘R 통계 그래프’에서는 왜 그래프가 데이터 분석의 초기 작업과 결과를 소통하는 데 핵심적인 역할을 하는지 분명하게 밝힌다. R의 강력한 플로팅 기능을 활용하면 아름다운 그래프를 만들 수 있다. 베이스 그래픽과 ggplot2를 소개하고 자세히 설명한다.
8장, ‘R 함수 작성’에서는 사용자 정의 함수를 사용해 반복되는 분석 과정을 쉽게 만드는 방법을 소개한다. 함수의 구조, 인자, 반환값 반환 규칙을 설명한다.
9장, ‘R 제어문’에서는 if, ifelse 같은 예약어로 프로그램의 흐름을 제어해 복잡한 일을 하게 만드는 방법을 다룬다.
10장, ’루프, R은 그다지 환영 받지 못하는 존재’에서는 for문, while문을 사용한 순회를 설명한다. R에서의 사용은 권장되지 않지만 알고 있는 것은 중요하다.
11장, ‘그룹별 데이터 조작’에서는 루프보다 나은 방법인 벡터화를 설명한다. 벡터화는 데이터를 일일이 순회시키지 않고 한꺼번에 일을 처리할 수 있게 해준다. apply 계열의 함수들이나 plyr 패키지와 함께 사용하면 효율을 더 높일 수 있다.
12장, ‘dplyr 패키지로 빠르게 그룹 단위로 데이터 다루기’에서는 그룹화된 데이터를 다루는 데 있어 더 발전한 dplyr 패키지를 소개한다. 이 패키지는 데이터 프레임과 함께 가장 잘 작동하도록 최적화돼 있고, 효율적인 코딩 작성과 읽기를 위해 파이프 기능을 적용할 수 있다.
13장, ‘purrr 패키지를 사용한 순회’에서는 purrr 패키지를 활용해 리스트나 벡터를 더 쉽게 순회할 수 있는 또 다른 방법을 다룬다. 이는 R의 함수형 언어 특징을 잘 활용하는 것이다.
14장, ‘데이터 재구조화’에서는 데이터의 구조를 바꾸는 작업에서 흔히 사용되는 스태킹, 조이닝 같이 여러 개의 데이터 세트를 합치는 방법을 소개한다. plyr, reshape2 같은 패키지들은 R 베이스에 있는 rbind, cbind, merge 함수와 함께 복잡한 작업을 쉽게 해주는 기능을 제공한다.
15장, ‘타이디버스로 데이터 재구조화’에서는 데이터 구조를 바꾸거나 결합할 때 plyr, reshape2 패키지를 대신해 더 쉽게 사용할 수 있는 plyr, tidy 패키지를 다룬다.
16장, ‘문자열 처리’는 텍스트에 대한 장이다. 많은 사람은 문자열 데이터와 통계를 잘 연결시켜 생각하지 못할 수도 있지만, 이는 데이터의 중요한 형태다. R은 문자열을 다루는 다양한 기능을 제공하는데, 문자열을 결합하거나 텍스트 안의 정보를 추출하는 등의 일을 할 수 있다. 더불어 정규 표현식도 설명한다.
17장, ‘확률 분포’에서는 정규 분포, 이항 분포, 포와송 분포를 간략히 소개한다. 여러 분포에 대한 수식과 함수들을 설명한다.
18장, ‘기초 통계학’에서는 흔히 배우는 기초 통계학을 다룬다. 평균, 표준편차-t, 검정 등을 소개한다.
19장, ‘선형 모형’에서는 통계학에서 가장 강력하고 흔히 사용되는 선형 모형을 자세히 설명한다.
20장, ‘일반화 선형 모형’에서는 선형 모형을 확장한 로지스틱, 포와송 회귀를 설명한다. 생존 분석도 다룬다.
21장, ‘모형 진단’에서는 모형의 질을 결정하는 방법과 잔차, AIC, 교차 타당성, 붓스트랩, 단계별 변수 선택과 같은 변수 선택 방법을 소개한다. 22장, ’정형화와 축소’에서는 일래스틱 넷과 베이즈 방법을 사용해 과대 적합을 예방하는 방법을 설명한다.
23장, ‘비선형 모형’에서는 선형 모형이 적절하지 않은 상황에서 사용할 수 있는 비선형 방법을 다룬다. 비선형 최소 제곱법, 스플라인, 일반화 가법 모형, 의사결정 나무, 부스팅 의사결정 나무, 랜덤 포리스트 등을 논의한다.
24장, ‘시계열과 자기상관’에서는 일변량, 다변량 시계열 데이터를 분석하는 방법을 다룬다.
25장, ‘군집화’ 데이터를 나누는 클러스터링 방법과 K-평균 군집화, 계층적 군집화를 소개한다.
26장, ‘Caret을 사용한 모형 적합’에서는 caret 패키지로 모형에 대한 자동 조율법을 소개한다. 이 패키지는 수백 개의 모형에 대한 단일 인터페이스를 제공해 모형 적합 작업을 쉽게 해준다.
27장, ‘니터를 활용한 재현성과 보고서’에서는 R 코드와 텍스트를 혼합해 보고서를 만드는 방법을 소개한다. 니터(knitr) 패키지와 레이텍을 사용하면 이 작업이 쉬워진다.
28장, ‘R 마크다운으로 다양한 포맷의 문서 만들기’ R과 R 마크다운을 사용해 재현 가능한 레포트, 슬라이드, 웹 페이지를 만드는 방법과 leaflet, dygraphs 패키지 같은 htmlwidgets을 사용해 사용자 인터랙션을 구현하는 방법을 소개한다.
29장, ‘샤이니로 인터랙티브 대시보드 만들기’에서는 샤이니(Shiny)를 사용한 인터랙티브 대시보드 만들기를 소개한다. 샤이니는 R을 백엔드에 두고 웹 기반의 대시보드를 만들 수 있는 기능을 제공한다.
30장, ‘R 패키지 개발’에서는 R 패키지 개발에 관한 내용을 소개한다. devtools, Rcpp 같은 패키지를 사용하면 패키지 개발이 매우 쉬워진다. 부록 A, ‘주변에서 찾을 수 있는 R 리소스’에서는 R 학습에 도움이 되는 리소스와 R 관련 커뮤니티를 소개한다.
부록 B, ‘용어 정리’에서는 이 책에서 사용한 용어들을 정리한다.

상세 이미지

저자/역자 소개

지은이의 말

일상에서 발생하는 데이터의 양이 증가함에 따라 넘치는 데이터를 처리하기 위해 새롭고 더 나은 도구들이 필요하게 됐다. 전통적으로 이러한 도구들은 양극단으로 분류된다. 엑셀, SPSS 같은 가볍고 개인적인 분석 도구들과 C++와 같은 것들을 사용하는 고성능 분석 도구가 있었다. 개인용 컴퓨터의 성능이 향상되면서 이 두 지점 중간에서 강력하면서도 대화형으로 사용할 수 있는 도구가 생겨나기 시작했다. 개인 컴퓨터에서 탐색적인 방법으로 분석하는 것을 시작으로 바로 수준 높은 비즈니스 프로세스를 지원하는 서버로 옮겨 작업할 수 있게 됐다. 이 지점에 있는 도구들이 R, 파이썬 같은 스크립트 언어들이다.
R은 1993년 오클랜드 대학의 로버트 젠틀맨과 로스 이하카 교수, 벨 연구소의 존 챔버스에 의해 개발된 S 언어를 바탕으로 개발됐다. R은 원래 대화형 방식을 통해 사용자가 명령을 입력하고 그 결과를 바로 받으며, 다시 새로운 명령을 실행하는 과정으로 사용할 수 있게 만들어진 고수준 언어다. 그 후 진화를 거듭해 시스템에 임베딩해 복잡한 문제들을 해결하는 데 사용할 수 있게 됐다.
R은 데이터를 변형하거나 분석하는 능력 외에도 놀라운 그래픽 기능과 리포트 제작 능력을 갖추고 있다. 이제는 데이터 과학에서 데이터의 추출, 변형, 모형 적합, 추론, 예측, 플로팅과 레포팅까지 거의 전 영역에 걸쳐 사용된다.
R의 인기는 2000년대 후반부터 치솟기 시작했으며, 학계에서 벗어나 은행, 마케팅, 제약, 정치학, 유전체학 등 여러 분야로 퍼지기 시작했다. C++ 같은 저수준 컴파일러 언어, SAS 또는 SPSS 같은 통계 전용 패키지, 800파운드짜리 고릴라인 엑셀 등을 사용하던 사용자들이 R의 새로운 사용자가 됐다. 같은 시기에 R의 기능을 확장하는 라이브러리인 애드-온 패키지의 숫자도 급증했다.
R은 프로그래밍 경험이 전혀 없는 초보자에게는 다소 두려운 존재이기도 하지만 나는 R을 사용하고 얼마 지나지 않아 마우스로 포인팅하고 클릭하던 방법 대신 프로그램화해 분석하기가 훨씬 쉽고, 훨씬 편리하며, 훨씬 믿음직스럽게 느끼는 사용자들을 많이 봐왔다. R을 좀 더 쉽고 빠르게 배울 수 있게 하려는 것이 나의 목표다.

지은이 소개

재리드 랜더(Jared P. Lander)

뉴욕에 있는 통계 컨설팅과 교육 서비스를 제공하는 랜더 애널리틱스 사의 수석 데이터 과학자며, 세계에서 가장 큰 R 모임인 뉴욕 오픈 스태티스티컬 프로그래밍 모임(New York Open Statistical Programming Meetup)과 뉴욕 R 콘퍼런스(New York R Conference) 관리자다.
컬럼비아 대학의 통계학 조교수이기도 하다. 스콧 피자 투어(Scott’s Pizza Tours)의 투어 가이드로도 활동한다. 컬럼비아 대학 통계학과에서 학부, 뮬렌버그 대학에서 수학 석사를 마쳤다. 학계와 산업계에 걸친 다양한 경험이 있으며, 데이터 관련 커뮤니티 활동을 매우 열심히 해서 MIT 슬로건 스포츠 애널리틱스 콘퍼런스(MIT Sloan Sports Analytics Conference) 등 전 세계에서 열리는 여러 모임에서 자주 발표한다. 통계학에 대한 글들은 jaredlander.com에서 볼 수 있으며 게재된 글은 CBS, 월 스트리트 저널 같은 많은 매체에 소개됐다.

옮긴이의 말

R 언어가 사용되는 분야는 매우 넓기 때문에 R에 관한 책들도 많이 출판되고 있다. 어떤 학문이나 도메인에 R을 붙이면 거기에 해당하는 책을 찾을 수 있을 정도다. 예를 들면 R for machine learning, R for biology, R for Finance, R for Marketing 관련 책을 어렵지 않게 찾을 수 있다. 이 책은 R for Data Science 분야에 해당한다.
이 책의 장점은 R의 포괄적인 면을 다룬다는 점이다. 저자는 통계학을 전공하고 데이터 회사를 운영하는 데이터 과학자며, 컬럼비아 대학교에서 데이터 과학 개론을 강의하기도 한다. 저자의 서문에 따르면 이 책은 그 강의의 내용을 뼈대로 삼았다고 한다. 즉 R에 초점을 맞춘 데이터 과학 개론서로 책이 기획됐다는 의미다. 그 점은 이 책의 목차를 보더라도 드러난다. 저자는 ‘R for Everyone’이라는 제목을 붙였지만 번역을 마치고 보니 데이터 과학 입문자를 위한 R’ 정도가 가장 적합한 제목이라고 생각한다. 어떤 의도가 있겠지만 책의 내용만 보면 그렇다는 이야기다.
좀 더 구체적으로 보면 컴퓨터 언어로서 R 언어의 이모저모를 설명했으며, 외부에 있는 데이터를 R로 갖고 오는 방법, 갖고 와서 본격적인 분석에 들어가기 전 준비 과정에서 데이터를 정제하는 타이디버스(Tidyverse) 같은 최신의 방법, 데이터 탐색을 위한 데이터 시각화 방법, 데이터에 대한 여러 가지 모형을 만들고 평가하는 방법, 분석된 결과를 다른 사람과 공유하기 위해 R 마크다운/니터 같은 방법으로 문서화하는 방법, 샤이니(shiny) 앱을 좀 더 다이나믹하게 만드는 방법, 그리고 마지막으로 R 패키지로 자신이 만든 것을 다른 사람과 공유하는 방법까지 데이터 과학의 거의 모든 부분을 망라하고 있다. 이것은 데이터 과학자들이 일상적으로 하는 일이다.
따라서 이 책은 데이터 과학자가 되고자 하는 독자에게 좋은 안내서가 될 것이다. 개인적인 생각일지 모르지만, 데이터 과학을 하려는 사람에게 R은 피해갈 수 없는 영역이라고 생각한다. 왜냐하면 데이터 과학의 근간은 통계학이며, R은 통계학자들의 핵심 언어기 때문이다.
통계학 지식이 깊지 않아서 통계학에 대한 부분이 가장 번역이 어려웠다. 저자가 통계학 전공자여서인지 모르지만, 이 책은 선형, 비선형 모형까지 광범위하고 다양하게 설명하고 있다. 비전공자로서 비선형 모형 같은 내용은 낯선 것이었다. 최신 머신 러닝 알고리즘과 관련된 알고리즘에 대한 직감(intuition)을 파악하는 것이 중요해서 저자도 추천하는 책이지만 『An Introduction to Statistical Learning』(Springer, 2017)을 같이 읽으면서 많은 내용을 참고했다. 물론 더 깊이 이해하는 데는 더 많은 시간이 필요할 것이다. 나와 비슷한 처지에 있는 분이라면 이 책도 같이 읽으면서 공부할 것을 추천한다.
장점이 있으면 단점도 있다. 개론서로서 포괄적인 접근법을 선택했기 때문에 한 주제에 대한 깊이 있는 설명 부족하다. 이 책에서 한 장으로 설명되는 내용들이 하나의 책으로 엮어질 수 있는 것들이 많다. 내가 저술하거나 번역한 책들만 예로 들어도 그렇다. 니터(knitr) 패키지와 R 마크다운 패키지를 사용해 코드와 텍스트를 합쳐 문서화하는 방법은 『통계 분석 너머 R의 무궁무진한 활용』(에이콘, 2017), 샤이니(shiny) 패키지로 웹 애플리케이션을 만드는 방법은 『R Shiny 프로그래밍 가이드』 (한나래아카데미, 2017), RStudio 사용법에 대한 번역서 『초보자를 위한 RStudio 마스터』(에이콘, 2017) 등과 관련이 있다. 통계학으로 들어가면 하나하나의 주제가 거대한 산이고, 그것들을 소개하는 다양한 책들이 있다.
체계를 갖춘 모든 것이 그러하듯 처음부터 한 주제에 몰입할 수는 없다. 이 책은 앞에서도 언급했지만 R의 드넓은 지평을 보여준다. 독자들은 이 책을 통해 R의 신세계를 경험할 것이고, 이 책을 계기로 더 멀리, 더 깊이 들어갈 수 있으리라 생각한다.

옮긴이 소개

고석범

가톨릭대학교 의과대학을 졸업한 신경과 전문의다. 약 10년 동안 환자를 진료하다 창업에 뛰어들었다. 현재는 혈중 순환암 세포에 기반을 둔 동반 진단 기기 CTC-based Companion Diagnostics를 개발하는 바이오벤처를 이끌고 있다. 벤처 회사로서 많은 어려움을 헤쳐나가고 있지만 언젠가 레즈 커즈와일이 이야기한 특이점을 넘어 지수 성장(Exponetial Growth)을 할 수 있을 것이라는 희망을 품고 있다. 회사가 그런 지수적 성장을 성취하기 위해서는 ICT 기술을 잘 활용할 수 있어야 한다는 믿음이 있어 ICT 공부도 멈추지 않는다. 언젠가 가상병원(virtual hospital)을 만들 계획을 하고 있다.
저서로 『R과 Knitr를 활용한 데이터 연동형 문서 만들기』(에이콘출판, 2014), 『통계 분석 너머 R의 무궁무진한 활용』(에이콘, 2017), 『R Shiny 프로그래밍 가이드』(한나래아카데미, 2017)가 있으며, 번역서로 『R과 Shiny 패키지를 활용한 웹 애플리케이션 개발』(에이콘, 2014), 『Data Smart: 엑셀로 이해하는 데이터 과학 입문』(에이콘, 2015), 『미티어 인 액션』(에이콘, 2015), 『초보자를 위한 RStudio 마스터』(에이콘, 2017)등이 있다.

목차

목차
  • 1장. R 설치
    • 1.1 R 다운로드하기
    • 1.2 R 버전
    • 1.3 32비트 대 64비트
    • 1.4 설치
      • 1.4.1 윈도우에서 설치하기
      • 1.4.2 맥 OS X에 설치하기
      • 1.4.3 리눅스에 설치하기
    • 1.5 마이크로소프트 R 오픈
    • 1.6 결론

  • 2장. R 환경
    • 2.1 커맨드라인 인터페이스
    • 2.2 RStudio
      • 2.2.1 RStudio 프로젝트
      • 2.2.2 RStudio 툴
      • 2.2.3 깃 통합
    • 2.3 마이크로소프트 비주얼 스튜디오
    • 2.4 결론

  • 3장. R 패키지
    • 3.1 패키지 인스톨
      • 3.1.1 패키지 제거
    • 3.2 패키지 로딩
      • 3.2.1 패키지 언로딩
    • 3.3 패키지 만들기
    • 3.4 결론

  • 4장. R의 기초
    • 4.1 기초 수학
    • 4.2 변수
      • 4.2.1 변수 할당
      • 4.2.2 변수 제거
    • 4.3 데이터 유형
      • 4.3.1 숫자형 데이터
      • 4.3.2 문자열 데이터
      • 4.3.3 날짜
      • 4.3.4 논리형
    • 4.4 벡터
      • 4.4.1 벡터 연산
      • 4.4.2 팩터형 벡터
    • 4.5 함수 호출하기
    • 4.6 함수에 대한 도움말 문서
    • 4.7 결측값
      • 4.7.1 NA
      • 4.7.2 NULL
    • 4.8 파이프
    • 4.9 결론

  • 5장. 고급 데이터 구조
    • 5.1 데이터 프레임
    • 5.2 리스트
    • 5.3 행렬
    • 5.4 배열
    • 5.5 결론

  • 6장. R로 데이터 읽어 오기
    • 6.1 CSV 파일 읽기
      • 6.1.1 read_delim
      • 6.1.2 fread
    • 6.2 엑셀 데이터
    • 6.3 데이터베이스에서 데이터 읽기
    • 6.4 다른 통계 툴의 데이터
    • 6.5 R 바이너리 파일
    • 6.6 R에 포함돼 있는 데이터
    • 6.7 웹 사이트에서 데이터 추출하기
    • 6.8 JSON 데이터 읽기
    • 6.9 결론

  • 7장. R 통계 그래프
    • 7.1 기본 그래픽스
      • 7.1.1 기본 히스토그램
      • 7.1.2 기본 산점도
      • 7.1.3 상자그림
    • 7.2 ggplot2
      • 7.2.1 ggplot2로 히스토그램과 밀도 곡선
      • 7.2.2 ggplot2 산점도
      • 7.2.3 ggplot2 상자그림과 바이올린 플롯
      • 7.2.4 ggplot2 꺾은선그래프
      • 7.2.5 테마
    • 7.3 결론

  • 8장. R 함수 작성
    • 8.1 헬로 월드
    • 8.2 함수 인자
      • 8.2.1 디폴트 인자
      • 8.2.2 부가 인자들
    • 8.3 Return Values
    • 8.4 do.call
    • 8.5 결론

  • 9장. R 제어문
    • 9.1 if와 else
    • 9.2 switch
    • 9.3 ifelse
    • 9.4 복합 테스트
    • 9.5 결론

  • 10장. 루프, R에서는 그다지 환영받지 못하는 존재
    • 10.1 for 루프
    • 10.2 while 루프
    • 10.3 루프 조절
    • 10.4 결론

  • 11장. 그룹별 데이터 조작
    • 11.1 Apply 패밀리
      • 11.1.1 apply 함수
      • 11.1.2 lapply와 sapply 함수
      • 11.1.3 mapply 함수
      • 11.1.4 기타 apply 함수들
    • 11.2 집계
    • 11.3 plyr 패키지
      • 11.3.2 llply
      • 11.3.3 plyr 헬퍼 함수
      • 11.3.4 속도 대 편이성
    • 11.4 data.table
      • 11.4.1 키
      • 11.4.2 데이터 테이블 집계
    • 11.5 결론

  • 12장. dplyr 패키지로 빠르게 그룹 단위로 데이터 다루기
    • 12.1 파이프(Pipes)
    • 12.2 tbl
    • 12.3 select
    • 12.4 filter
    • 12.5 slice
    • 12.6 mutate
    • 12.7 summarize
    • 12.8 group_by
    • 12.9 arrange
    • 12.10 do
    • 12.11 데이터베이스와 dplyr 사용
    • 12.12 결론

  • 13장. purrr 패키지를 사용한 순회
    • 13.1 map
    • 13.2 반환값의 유형을 정의한 map 함수
    • 13.3 데이터 프레임에서 순회하기
    • 13.4 여러 입력값에 대해 map 사용하기
    • 13.5 결론

  • 14장. 데이터 재구조화
    • 14.1 cbind와 rbind
    • 14.2 조인
    • 14.3 결론

  • 15장. 타이디버스로 데이터 재구조화
    • 15.1 행과 열을 붙이기
    • 15.2 dplyr를 사용한 조인
    • 15.3 데이터 포맷 변환
    • 15.4 결론

  • 16장. 문자열 처리
    • 16.1 paste 함수
    • 16.2 sprintf 함수
    • 16.3 텍스트 추출
    • 16.4 정규 표현식
    • 16.5 결론

  • 17장. 확률 분포
    • 17.1 정규 분포
    • 17.2 이항 분포(Binomial Distribution)
    • 17.3 포아송 분포
    • 17.4 기타 분포들
    • 17.5 결론

  • 18장. 기초 통계학
    • 18.1 요약 통계
    • 18.2 상관과 공분산(Correlation, Covariance)
    • 18.3 t-검정
    • 18.3 단일-표본 t 검정
    • 18.4 ANOVA
    • 18.5 결론

  • 19장. 선형 모형
    • 19.1 단순선형회귀
    • 19.3 결론

  • 20장. 일반화 선형 모형
    • 20.1 로직스틱 회귀
    • 20.2 포아송 회귀
    • 20.3 기타 일반화 선형 모형들
    • 20.4 생존 분석
    • 20.5 결론

  • 21장. 모형 진단
    • 21.1 잔차(Residuals)
    • 21.2 모형들을 비교하는 방법
    • 21.3 교차 타당성 검증(Cross-Validation)
    • 21.4 부트 스트랩
    • 21.5 단계적 변수 선택
    • 21.6 결론

  • 22장. 정형화(Regularization)와 축소(Shrinkage)
    • 22.2 베이즈 축소(Bayesian Shrinkage)
    • 22.3 결론

  • 23장. 비선형 모형
    • 23.1 비선형 최소 제곱
    • 23.2 스플라인(splines)
    • 23.3 일반화 가법 모형(Generalized Additive Models)
    • 23.4 의사결정 나무(decision trees)
    • 23.5 부스팅 의사결정 나무(boosted tress)
    • 23.6 랜덤 포리스트(Random Forests)
    • 23.7 결론

  • 24장. 시계열과 자기상관
    • 24.1 자기회귀이동평균(Autoregressive Moving Average)
    • 24.2 벡터자기회귀모형(VAR)
    • 24.3 일반화 자동회귀 조건부 이분산 모형(GARCH)
    • 24.4 결론

  • 25장. 군집화
    • 25.1 K-평균 군집화
    • 25.2 PAM
    • 25.3 계층적 군집화
    • 25.4 결론

  • 26장. Caret을 사용한 모형 적합
    • 26.1 caret 패키지의 기초
    • 26.2 Caret 옵션들
    • 26.3 부스팅 의사결정 나무에 대한 조율
    • 26.4 결론

  • 27장. 니터(knitr)를 활용한 재현성과 보고서
    • 271. 레이텍 프로그램 인스톨
    • 27.2 레이텍의 기초
    • 27.3 레이텍과 함께 니터 사용하기
    • 27.4 결론

  • 28장. R 마크다운으로 다양한 포맷의 문서 만들기
    • 28.1 문서 컴파일
    • 28.2 문서 헤더
    • 28.3 마크다운의 기초
    • 28.4 마크다운 코드 청크
    • 28.5 htmlwidgets
    • 28.6 R 마크다운 슬라이드 쇼
    • 28.7 결론

  • 29장. 샤이니로 인터랙티브 대시보드 만들기
    • 29.1 R 마크다운 문서 안에서 샤이니 사용하기
    • 29.2 샤이니에서의 반응성 표현식
    • 29.3 서버와 UI
    • 29.4 결론

  • 30장. R 패키지 개발
    • 30.1 폴더 구조
    • 30.2 패키지 파일들
    • 30.3 패키지 문서화
    • 30.4 테스트
    • 30.5 체킹, 빌딩, 인스톨링
    • 30.6 CRAN에 패키지 제출하기
    • 30.7 C++ 코드
    • 30.8 결론

  • 부록 A. 주변에서 찾을 수 있는 R 리소스

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

수정 사항은 여기에서 내려받으세요.

[p.506 1행]
그림 26.2는
->
그림 25.6은

[p.508 아래에서 4행]
destfile = "data/worlmap
->
destfile = "data/worldmap