(개정판!)R로 하는 빅데이터 분석: 데이터 전처리와 시각화

글쓴이 admin 날짜

  • 제목 : R로 하는 빅데이터 분석(개정판) | 출판사 : 숨은원리
  • 지음 : 김권현 / 가격 : 25,000원 / 판형 : 176×248
  • 쪽수 : 344쪽 / 발행일 : 2020년 1월 14일 / ISBN : 979-11-960144-9-0(93000)

이 책은 어느 정도 프로그래밍 경험이 있는 독자를 대상으로, 오픈 소스 데이터 분석 도구인 R을 활용하여 데이터를 불러들이고, 가공하고, 시각화하는 방법을 설명한다. 이 책은 시중의 책들과 달리 특정한 기능을 하는 함수들을 설명하기 전에 데이터 전처리의 목적과 기능에 대한 개념적인 이해를 우선 할 수 있도록 도와준다. 그리고 날짜시간 자료형, 문자열 자료형, 정규표현식 등에 대한 원리와 응용 방법을 자세하게 설명하여 복잡한 전처리 과정에서도 논리적 오류를 범하지 않도록 한다. 분산처리 없이 빅데이터 처리를 할 수 있는 마지막 보류인 데이터테이블을 dplyr 패키지의 함수와 비교하여 이해를 도왔고,ggplot2의 설명에서는 플롯의 수많은 옵션을 정하는 방법을 한 눈에 보기 싶게 보여준다. 그 밖에도 부록으로 RStudio의 치트시트를 수록하였다. 어느 정도 R에 익숙한 독자들에게도 R의 데이터 전처리와 시각화에 대해 좀 더 깊이 알 수 있게 하였다. 레퍼런스 북으로도 손색이 없다.

출판사 서평

이 책은 쿡북(Cookbook)이 아니다!

물론 프로그래밍 언어으로 원하는 목적을 달성하는 가장 빠른 방법은
이미 작동하는 소스 코드를 실행하는 것이다. 하지만 소스 코드를 고쳐야 한다면!?!

그 때부터는 수많은 문법오류, 논리오류(버그)에
잘 돌아가던 프로그램도 안 돌아가는 신비한 경험을 하게 된다.

그 버그란 무엇 때문에 생기는가?

실수, 수면부족, 주의 산만 등 다양한 원인이 있겠지만,
또 다른 주요 원인은 튼튼하지 못한 기초에 있다!

  • NA > 3은 왜 NA이고, NA | TRUE는 왜 TRUE인가?
  • 데이터테이블(data.table)의 복잡한 문법은 어떻게 이해해야 하는가?
  • 정규표현식의 메타문자는 무엇이고, 어떻게 다루어야 하는가?
  • ggplot2의 수많은 옵션은 어떻게 외워야 할까?

패키지, 벡터, 데이터프레임 등 기초부터 데이터테이블, 정규표현식, ggplot2까지
데이터 전처리와 시각화를 위한 핵심을 모두 담았다!

저자소개

지은이 : 김권현

  • 서울대학교 인지과학 박사
  • 서울대학교 물리학 학사
  • 서울대학교 사회과학원 방법론 컨설턴트
  • 서울대학교 사회과학원 R 강의
  • 서강대학교, 국민대학교 등 강의(심리통계, 분석프로그래밍)
  • R 패키지 mirt의 공헌자
  • ‘기초 통계학의 숨은 원리’, ‘수학의 숨은 원리’ 등의 저자
  • 2019년 법학적성시험 분석(법학전문대학원협의회 의뢰)

차 례

서문 1

1 들어가기 3
1.1 R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 R의 패키지(Packages) 5
2.1 패키지 설치 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 패키지 관련 정보 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 패키지 불러오기/확인하기/제거하기 . . . . . . . . . . . . . . . . . . 7
2.4 패키지 관리하기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 중복되는 함수와 변수 . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 R의 변수, 자료형, 연산/함수 9
3.1 R의 변수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 R의 데이터 타입(자료형) . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 연산(Operations)과 함수(Functions) . . . . . . . . . . . . . . . . . 16
3.4 특별한 값 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 데이터 구조 25
4.1 벡터(Vector) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 행렬(matrix), 배열(array), 데이터프레임(data.frame), 리스트(list) 37
4.3 행렬, 배열, 데이터프레임, 리스트의 부분선택하기 . . . . . . . . . . . . 42
4.4 행렬, 배열, 데이터프레임, 리스트 수정하기 . . . . . . . . . . . . . . . 46
4.5 CRUD(Create, Read, Update, Delete) . . . . . . . . . . . . . . . 47
4.6 3차 이상의 다차원 배열 . . . . . . . . . . . . . . . . . . . . . . . . . 49

5 dplyr 패키지를 활용한 데이터 가공 57

5.1 magrittr의 파이프 연산자 . . . . . . . . . . . . . . . . . . . . . . . 57
5.2 dplyr의 방식: 부분 선택(Subsetting) . . . . . . . . . . . . . . . . . 60
5.3 dplyr의 방식 : 수정 . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4 dplyr의 기타 편의 기능 . . . . . . . . . . . . . . . . . . . . . . . . . 73

6 날짜와 시간(Date and Time) 77
6.1 R의 날짜와 시간 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.2 날짜의 표기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3 날짜 표기 변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.4 날짜시간 표기 인식 . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.5 날짜, 시간 연산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.6 날짜(시간)의 특정한 정보 참조 . . . . . . . . . . . . . . . . . . . . . 86
6.7 날짜(시간) 갱신 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.8 활용 예 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

7 팩터 자료형 91
7.1 팩터형의 중요성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.2 데이터 전처리에 있어서 팩터형 . . . . . . . . . . . . . . . . . . . . . 92
7.3 forcats 패키지 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

8 R로 데이터 읽어오기 97
8.1 R 내장 데이터 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8.2 들어가기 : write.table/read.table, save/load . . . . . . . . . . . 98
8.3 텍스트로 저장된 데이터 화일 읽기 . . . . . . . . . . . . . . . . . . . 99
8.4 EXCEL 화일 읽기 . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.5 그 밖의 통계 프로그램 데이터 화일 . . . . . . . . . . . . . . . . . . . 107

9 데이터 가공 109
9.1 집단별로 함수 적용하기 . . . . . . . . . . . . . . . . . . . . . . . . . 110
9.2 여러 데이터 프레임 합치기 . . . . . . . . . . . . . . . . . . . . . . . 118
9.3 세로형/가로형 변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

10 패키지 데이터테이블(data.table) 129
10.1 package:dplyr과 package:data.table의 비교 . . . . . . . . . . . . . 129
10.2 data.table의 키(key) 활용하기 . . . . . . . . . . . . . . . . . . . . 145
10.3 data.table을 활용한 병합 . . . . . . . . . . . . . . . . . . . . . . . 149
10.4 그 밖의 특수한 기호 : .SD, .GRP, .N, .I, .BY, .EACHI, .. . . . . . . . . 158

10.5 데이터테이블 종합 . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

11 문자열(character) 167
11.1 인코딩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
11.2 대표적인 인코딩 방법 . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11.3 인코딩 방법의 종류 . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11.4 R에서 인코딩 다루기 . . . . . . . . . . . . . . . . . . . . . . . . . . 169
11.5 R에서 문자열 입력 . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
11.6 유니코드 정규화(Normalization) . . . . . . . . . . . . . . . . . . . 173
11.7 문자열의 정렬 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
11.8 문자열을 다루는 함수들 . . . . . . . . . . . . . . . . . . . . . . . . . 175
11.9 패키지 stringr을 활용한 문자열 관리 . . . . . . . . . . . . . . . . . 183

12 정규표현식 185
12.1 R과 정규표현식 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
12.2 확장정규표현식(ERE; Extended Regular Expressions) . . . . . . . 186
12.3 Perl 호환 정규표현식 . . . . . . . . . . . . . . . . . . . . . . . . . . 196
12.4 패키지 stringr, stringi . . . . . . . . . . . . . . . . . . . . . . . . 198
12.5 stringi 패키지와 정규표현식을 활용한 문자열 데이터 가공 . . . . . . . 199

13 흐름 제어와 함수 201
13.1 제어문: 조건과 반복 . . . . . . . . . . . . . . . . . . . . . . . . . . 201
13.2 함수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

14 기술 통계량 215
14.1 1변수 기술 통계량 . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
14.2 데이터 프레임의 모든 변수(컬럼)에 대해 요약통계치 구하기 . . . . . . 218

15 간편 시각화 221
15.1 간편 시각화의 예 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

16 ggplot2 227
16.1 들어가기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
16.2 시각적 맵핑(Aesthetic mapping) . . . . . . . . . . . . . . . . . . . 229
16.3 기하학적 대상(geom) . . . . . . . . . . . . . . . . . . . . . . . . . . 248
16.4 보조선(Auxillary lines) . . . . . . . . . . . . . . . . . . . . . . . . 257
16.5 좌표계(Coordinate system) . . . . . . . . . . . . . . . . . . . . . . 259

16.6 Coordinate system . . . . . . . . . . . . . . . . . . . . . . . . . . 259
16.7 범례(Legends) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
16.8 제목과 테마(Title and Theme) . . . . . . . . . . . . . . . . . . . . 267
16.9 결과 정리 및 저장 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
16.10ggplot2(gg = Grammar of Graphics) 총정리 . . . . . . . . . . . . 275

17 연습문제 해답 279
데이터 구조 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
데이터 불러들이기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
제어와 함수 I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

R에서 하는 벡터/행렬 연산 283
벡터연산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
한 행렬 연산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
두 행렬의 연산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
선형(행렬) 대수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

A 수 표기 방법 287
A.1 국제표준 ISO 80000-1 . . . . . . . . . . . . . . . . . . . . . . . . . 287
A.2 한글 맞춤법 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
A.3 다른 나라의 수 표기 . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
A.4 R에서 수 읽기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

B dplyr을 SQL로 번역하기 289
B.1 수기 번역 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
B.2 dbplyr 패키지를 사용한 자동 번역 . . . . . . . . . . . . . . . . . . . 292

C 화일과 디렉토리 관련 함수들 293
C.1 디렉토리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
C.2 스크립트 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
C.3 화일 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

D R의 색, 세계 타임존 299

E 치트시트 305


온라인 서점 살펴보기(출간 시 업데이트 예정)

  • 예스24
  • 인터넷 교보문고
  • 알라딘
  • 인터파크 도서
  • 영풍문고

더 빠르게, 더 체계적으로, 더 완벽하게,
데이터 분석을 위한 R을 배운다!

  • R 최신 버전 3.6.1(2019-07-05) 반영
  • 빅데이터 분석을 위한 최선의 선택-data.table 패키지(최신버전 1.12.6)에 대한 설명 수록
  • RStudio의 ggplot2 등 패키지 치트시트(cheatsheet) 수록
  • 백과사전식의 나열이 아니라 개념 중심의 체계적인 이해 중시
  • 좀 더 테크니컬한 심층 활용 방법과 오류를 사전에 방지하는 방법 설명
  • 각종 참고 자료 및 표 수록
  • 다양한 원서의 내용 종합
    • Spector(2008). Data Manipulation with R.
    • Kabacoff(2015). R in Action: Data Analysis and Graphics with R
    • Wickham(2016). ggplot2: Elegant Graphics for Data Analysis.
    • Lander(2017). R for Everyone: Advanced Analytics and Graphics.
    • Wickham & Grolemund(2017). R for Data Science.
    • Van Der Loo & De Jong(2018). Statistical Data Cleaning with Applications in R.

체험판buk.io에서 간단하게 볼 수 있습니다.

실습용 화일 : Github repo

[2022-01-14] 제3판이 출간되었습니다 (링크).

카테고리: 새책소개

5개의 댓글

박샘이 · 2020년 1월 22일 10:47 오전

소스코드좀 주세요 책내용이요 pdf라도 보내주세요

미스터 박 · 2020년 1월 22일 10:52 오전

소스코드 보내주세요

양현정 · 2020년 12월 28일 4:33 오후

정말 좋은 책을 발간해주셔서 감사합니다.
많은 도움이 되고 있습니다.
사용하면서 궁금했던 R에 대한 궁금증이 많이 해결되고 있습니다.

에라타 리포트입니다.
63페이지 “특정한 조건을 만족하는 열 이름 참조”의 표에서 contains가 contains_with로 적혀있습니다. 추후 수정해주시길 바랍니다.

다시 한번 좋은 책을 만들어 주셔서 감사드립니다.

    admin · 2021년 9월 22일 5:02 오후

    댓글을 이제야 확인했네요. 네 오타는 다음 판에서 수정하겠습니다. 감사합니다~!

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

2 + 15 =