R로 하는 빅데이터 분석: 데이터 전처리와 시각화

개념적 기초에서 심층 활용까지
$30.24
SKU
9791196014445
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Fri 05/2 - Thu 05/8 (주문일로부 10-14 영업일)

Express Shipping estimated by Tue 04/29 - Thu 05/1 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2022/01/14
Pages/Weight/Size 176*250*18mm
ISBN 9791196014445
Categories IT 모바일 > 프로그래밍 언어
Description
드디어 제3판 발간!

데이터 전처리는 데이터 분석가의 작업 시간의 70-80%에 해당할 만큼 큰 비중을 차지한다. 하지만 데이터 전처리는 단순히 컴퓨터 프로그래밍이 아니다. 데이터에 대한 이해, 그리고 컴퓨터에 대한 이해, 모두 필요하다! 이 책은 쿡북(Cookbook)이 아니다! 물론 프로그래밍 언어으로 원하는 목적을 달성하는 가장 빠른 방법은 이미 작동하는 소스 코드를 실행하는 것이다. 하지만 소스 코드를 고쳐야 한다면!?! 그때부터는 수많은 문법오류, 논리오류(버그)에 잘 돌아가던 프로그램도 안 돌아가는 신비한 경험을 하게 된다. 그 버그란 무엇 때문에 생기는가? 실수, 수면부족, 주의 산만 등 다양한 원인이 있겠지만, 또 다른 주요 원인은 튼튼하지 못한 기초에 있다!

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

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

3판 서문 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
1판 서문 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii

1 들어가기

1.1 R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 R의 패키지(Packages)

2.1 패키지 설치 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 패키지 관련 정보 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 패키지 불러오기/확인하기/제거하기 . . . . . . . . . . . . . . . . . . 8
2.4 패키지 관리하기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 중복되는 함수와 변수 . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 R의 변수, 자료형, 연산/함수

3.1 R의 변수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 R의 데이터 타입(자료형) . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 연산(Operations)과 함수(Functions) . . . . . . . . . . . . . . . . . 19
3.4 특별한 값 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4 데이터 구조

4.1 벡터(Vector) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 행렬(matrix), 배열(array), 데이터프레임(data.frame), 리스트(list)
만들기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3 행렬, 배열, 데이터프레임, 리스트의 부분선택하기 . . . . . . . . . . . . 46
4.4 행렬, 배열, 데이터프레임, 리스트 수정하기 . . . . . . . . . . . . . . . 50
4.5 CRUD(Create, Read, Update, Delete) . . . . . . . . . . . . . . . 51
4.6 3차 이상의 다차원 배열 . . . . . . . . . . . . . . . . . . . . . . . . . 53

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

5.1 magrittr의 파이프 연산자 . . . . . . . . . . . . . . . . . . . . . . . 61
5.2 dplyr의 방식: 부분 선택(Subsetting) . . . . . . . . . . . . . . . . . 64
5.3 dplyr의 방식 : 수정 . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.4 dplyr의 기타 편의 기능 . . . . . . . . . . . . . . . . . . . . . . . . . 77

6 날짜와 시간

6.1 R의 날짜와 시간 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2 날짜의 표기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3 날짜 표기 변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.4 날짜시간 표기 인식 . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.5 날짜, 시간 연산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.6 날짜(시간)의 특정한 정보 참조 . . . . . . . . . . . . . . . . . . . . . 94
6.7 날짜(시간) 갱신 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.8 몇 가지 유의사항 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.9 활용 예 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.10 stringi 패키지 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.11 국경일과 공휴일 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.12 음력 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.13 먼 미래, 먼 과거, 그리고 기원 . . . . . . . . . . . . . . . . . . . . . . 103

7 팩터 자료형

7.1 팩터형의 중요성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.2 데이터 전처리에 있어서 팩터형 . . . . . . . . . . . . . . . . . . . . . 109
7.3 forcats 패키지 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

8 R로 데이터 읽어오기

8.1 R 내장 데이터 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.2 들어가기 : write.table/read.table, save/load . . . . . . . . . . . 117
8.3 텍스트로 저장된 데이터 파일 읽기 . . . . . . . . . . . . . . . . . . . 118
8.4 바이너리 파일 읽기 . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.5 압축 파일에서 읽어오기 . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.6 EXCEL 파일 읽기 . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.7 그 밖의 통계 프로그램 데이터 파일 . . . . . . . . . . . . . . . . . . . 135
8.8 Web에서 데이터 긁어오기(Web scraping) . . . . . . . . . . . . . . . 138
8.9 JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.10 이미지에서 텍스트 인식 . . . . . . . . . . . . . . . . . . . . . . . . . 145
8.11 정리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

9 데이터 가공

9.1 집단별로 함수 적용하기 . . . . . . . . . . . . . . . . . . . . . . . . . 150
9.2 여러 데이터 프레임 합치기 . . . . . . . . . . . . . . . . . . . . . . . 158
9.3 세로형/가로형 변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

10 패키지 데이터테이블(data.table)

10.1 package:dplyr과 package:data.table의 비교 . . . . . . . . . . . . . 169
10.2 data.table의 키(key) 활용하기 . . . . . . . . . . . . . . . . . . . . 184
10.3 data.table을 활용한 병합 . . . . . . . . . . . . . . . . . . . . . . . 188
10.4 그 밖의 특수기호 : .SD, .GRP, .N, .I, .BY, .EACHI, .. . . . . . . . . . 197
10.5 데이터테이블 종합 . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

11 문자열(character)

11.1 인코딩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
11.2 대표적인 인코딩 방법 . . . . . . . . . . . . . . . . . . . . . . . . . . 206
11.3 인코딩 방법의 종류 . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
11.4 R에서 인코딩 다루기 . . . . . . . . . . . . . . . . . . . . . . . . . . 208
11.5 문자열 상수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
11.6 유니코드, 엔디언(endianness), BOM . . . . . . . . . . . . . . . . . 213
11.7 유니코드 정규화(Normalization) . . . . . . . . . . . . . . . . . . . 216
11.8 문자열의 정렬 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.9 문자열을 다루는 함수들 . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.10패키지 stringr을 활용한 문자열 관리 . . . . . . . . . . . . . . . . . 225
11.11주요 인코딩 표 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

12 정규표현식

12.1 R과 정규표현식 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
12.2 확장정규표현식(ERE; Extended Regular Expressions) . . . . . . . 230
12.3 Perl 호환 정규표현식 . . . . . . . . . . . . . . . . . . . . . . . . . . 240
12.4 패키지 stringr, stringi . . . . . . . . . . . . . . . . . . . . . . . . 243
12.5 stringi 패키지와 정규표현식을 활용한 문자열 데이터 가공 . . . . . . . 244
12.6 활용 예 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

13 흐름 제어와 함수

13.1 제어문: 조건과 반복 . . . . . . . . . . . . . . . . . . . . . . . . . . 249
13.2 함수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

14 기술 통계량

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

15 간편 시각화

15.1 간편 시각화의 예 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
15.2 조건부 이변수 플롯(등구간 구획) . . . . . . . . . . . . . . . . . . . . 274

16 ggplot2

16.1 들어가기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
16.2 시각적 맵핑(Aesthetic mapping) . . . . . . . . . . . . . . . . . . . 277
16.3 기하학적 대상(geom) . . . . . . . . . . . . . . . . . . . . . . . . . . 296
16.4 보조선(Auxillary lines) . . . . . . . . . . . . . . . . . . . . . . . . 305
16.5 좌표계(Coordinate system) . . . . . . . . . . . . . . . . . . . . . . 307
16.6 범례(Legends) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
16.7 제목과 테마(Title and Theme) . . . . . . . . . . . . . . . . . . . . 315
16.8 결과 정리 및 저장 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
16.9 ggplot2(gg = Grammar of Graphics) 총정리 . . . . . . . . . . . . 324

17 연습문제 해답

데이터 구조 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
데이터 불러들이기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
제어와 함수 I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

R에서 하는 벡터/행렬 연산

벡터연산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
한 행렬 연산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
두 행렬의 연산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
선형(행렬) 대수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

A 수 표기 방법

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

B 측정단위

B.1 단위와 관련된 ‘한글 맞춤법’ . . . . . . . . . . . . . . . . . . . . . . 344
B.2 주요 단위 및 접두어 . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

C dplyr을 SQL로 번역하기

C.1 수기 번역 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
C.2 dbplyr 패키지를 사용한 자동 번역 . . . . . . . . . . . . . . . . . . . 351

D 화일과 디렉토리 관련 함수들

D.1 디렉토리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
D.2 스크립트 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
D.3 화일 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

E R의 색, 세계 타임존

F 치트시트
Author
김권현
김권현은 서울대학교 인지과학 박사, 서울대학교 물리학 학사 출신으로 서울대학교 사회과학원 방법론 컨설턴트, 서울대학교 사회과학원 R 강의, 서강대학교, 국민대학교 등에서의 강의경험과 회사 경험을 토대로 책을 썼다. R 패키지 mirt의 공헌자이며 ‘기초 통계학의 숨은 원리’, ‘수학의 숨은 원리’ 등의 저자이기도 하다.

● 서울대학교 인지과학 박사
● 서울대학교 물리학 학사
● 서울대학교 사회과학원 방법론 컨설턴트
● 서울대학교 사회과학원 R 강의
● 서강대학교, 국민대학교 등 강의(심리통계, 분석프로그래밍)
● R 패키지 mirt의 공헌자
● ‘기초 통계학의 숨은 원리’, ‘수학의 숨은 원리’ 등의 저자
● 2019년 법학적성시험 분석(법학전문대학원협의회 의뢰)
김권현은 서울대학교 인지과학 박사, 서울대학교 물리학 학사 출신으로 서울대학교 사회과학원 방법론 컨설턴트, 서울대학교 사회과학원 R 강의, 서강대학교, 국민대학교 등에서의 강의경험과 회사 경험을 토대로 책을 썼다. R 패키지 mirt의 공헌자이며 ‘기초 통계학의 숨은 원리’, ‘수학의 숨은 원리’ 등의 저자이기도 하다.

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