책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 프로그래밍 기초/개발 방법론
· ISBN : 9791188621149
· 쪽수 : 492쪽
책 소개
목차
CHAPTER 1 서론 1
1.1 이 책을 읽어야 하는 독자 3
1.2 이 책에서 얻을 수 있는 것 4
1.3 메타 기법 5
1.4 읽어 볼 만한 자료 5
1.5 도움 얻기 6
1.6 감사의 말 7
1.7 편집 규칙 8
1.8 출간 방법 9
PART I 기본 11
CHAPTER 2 데이터 구조 13
2.1 벡터 15
2.2 속성 20
2.3 매트릭스와 어레이 26
2.4 데이터 프레임 29
2.5 퀴즈 풀이 34
CHAPTER 3 서브세팅 35
3.1 데이터 유형 36
3.2 서브세팅 연산자 43
3.3 서브세팅과 할당 48
3.4 응용 50
3.5 퀴즈 풀이 59
CHAPTER 4 어휘 60
4.1 기초 60
4.2 공통적인 데이터 구조 62
4.3 통계학 63
4.4 R 작업 64
4.5 I/O 64
CHAPTER 5 스타일 가이드 66
5.1 표기법과 이름 짓기 67
5.2 문법 68
5.2.5 할당 71
5.3 조직화 71
CHAPTER 6 함수 72
6.1 함수 구성 요소 74
6.2 렉시칼 스코핑 76
6.3 모든 연산은 함수 호출 82
6.4 함수 인자 85
6.5 특수한 호출 95
6.6 반환값 99
6.7 퀴즈 풀이 104
CHAPTER 7 객체지향 필드 가이드 105
7.1 베이스 타입 107
7.2 S3 109
7.3 S4 118
7.4 RC 124
7.5 시스템 선택 128
7.6 퀴즈 풀이 129
CHAPTER 8 환경 130
8.1 환경 기초 131
8.2 환경 위에서 재귀 137
8.3 함수 환경 140
8.4 값에 이름을 바인딩하기 148
8.5 명시적 환경 152
8.6 퀴즈 풀이 154
CHAPTER 9 디버깅, 상황 처리, 그리고 방어적 프로그래밍 155
9.1 디버깅 기법 157
9.2 디버깅 도구 159
9.3 상황 처리 166
9.4 방어적 프로그래밍 176
9.5 퀴즈 풀이 178
PART II 함수형 프로그래밍 179
CHAPTER 10 함수형 프로그래밍 181
10.1 동기 182
10.2 익명 함수 187
10.3 클로저 190
10.4 함수로 된 리스트 196
10.5 사례 연구: 수치 적분 200
CHAPTER 11 기능 205
11.1 나의 첫 번째 기능: lapply() 207
11.2 for 루프 기능들: lapply( )의 친구들 211
11.3 매트릭스와 데이터 프레임의 조작 221
11.4 리스트 조작 226
11.5 수학 기능 230
11.6 현재 상태로 남아 있어야 하는 반복 232
11.7 함수군 235
CHAPTER 12 함수 연산자 242
12.1 행동적 FO 244
12.2 출력 FO 254
12.3 입력 FO 258
12.4 결합 FO 262
PART III 언어에서의 컴퓨팅 267
CHAPTER 13 비표준적 평가 269
13.1 표현식 파악 270
13.2 서브세트에서 비표준적 평가 273
13.3 이슈 스코핑 278
13.4 다른 함수에서 호출 280
13.5 대체 284
13.6 비표준적 평가의 단점 289
CHAPTER 14 표현식 292
14.1 표현식의 구조 293
14.2 이름 298
14.3 호출 300
14.4 현재 호출 파악하기 305
14.5 리스트쌍 309
14.6 파싱과 디파싱 311
14.7 재귀 함수로 AST를 따르기 314
CHAPTER 15 도메인 특화 언어 324
15.1 HTML 325
15.2 LaTeX 334
PART IV 성능 343
CHAPTER 16 성능 345
16.1 R은 왜 느린가? 346
16.2 마이크로벤치마킹 347
16.3 언어 성능 349
16.4 구현 성능 354
16.5 대체적 R 구현 358
CHAPTER 17 코드 최적화 361
17.1 성능 측정 363
17.2 성능 개선하기 367
17.3 코드 조직화 368
17.4 이미 누군가 그 문제를 해결하지는 않았는가? 370
17.5 가능한 한 적게 작업하라 371
17.6 벡터화 378
17.7 사본 회피 381
17.8 바이트 코드 컴파일레이션 382
17.9 사례 연구: t-검정 383
17.10 병렬화 386
17.11 다른 기법들 388
CHAPTER 18 메모리 389
18.1 객체 크기 390
18.2 메모리 사용과 가비지 컬렉션 395
18.3 lineprof를 이용한 메모리 프로파일링 398
18.4 제자리에서 수정 402
CHAPTER 19 Rcpp를 이용한 고성능 함수 408
19.1 C++ 시작하기 410
19.2 속성 및 다른 클래스들 420
19.3 결측값 423
19.4 Rcpp 설탕 427
19.5 STL 430
19.6 사례 연구 437
19.7 패키지에 Rcpp 사용하기 441
19.8 더 공부하기 442
19.9 감사의 글 444
CHAPTER 20 R의 C 인터페이스 445
20.1 R에서 C 함수 호출 447
20.2 C 데이터 구조 448
20.3 벡터의 생성과 수정 450
20.4 리스트쌍 457
20.5 입력 유효성 검증 460
20.6 함수에 대한 C 소스 코드 찾기 462
찾아보기
리뷰
책속에서
R은 아직 상대적으로 젊은 언어이므로 이해를 돕기 위한 자료들이 지속적으로 더해지고 있다. R을 이해하기 위해 노력한 개인적인 경험에 비춰볼 때 다른 프로그래밍 언어와 관련된 자료를 이용하는 것이 특히 도움이 되었다. R은 함수형(functional)과 객체지향형(OO; Object Oriented) 프로그래밍 언어 모두의 다양한 측면을 지닌다. 이러한 개념들이 R에서 표현되는 방법을 학습하는 것은 다른 프로그래밍 언어에 대한 자신의 기존 지식을 증대하는 데 도움을 주고, 스스로 개선할 수 있는 영역을 식별하는 데도 도움을 줄 수 있다.
렉시칼 스코핑은 함수가 호출됐을 때가 아니라 생성되었을 때 중첩되는(nested) 방식에 따라 심볼 값을 찾는다. 렉시칼 스코핑을 사용하면 변수의 값을 어디에서 찾아야 할지 알아내기 위해 함수를 호출하는 방법을 알아야 할 필요가 없다. 단지 함수의 정의만 살펴보면 된다.