빅데이터 분석 도구 R 프로그래밍
도서명:빅데이터 분석 도구 R 프로그래밍
저자/출판사:노만,매트로프/에이콘출판
쪽수:504쪽
출판일:2012-08-23
ISBN:9788960773332
목차
1장 시작하기
___1.1 R 실행하기
______1.1.1 인터랙티브 모드
______1.1.2 배치 모드
___1.2 첫 번째 R 세션
___1.3 함수 소개
______1.3.1 변수의 범위
______1.3.2 기본 인수
___1.4 중요한 R 데이터 구조 예습하기
______1.4.1 R의 일꾼, 벡터
______1.4.2 문자열
______1.4.3 행렬
______1.4.4 리스트
______1.4.5 데이터 프레임
______1.4.6 클래스
___1.5 확장 예제: 시험 성적을 회귀 분석하기(1)
___1.6 시작과 종료
___1.7 도움말 사용하기
______1.7.1 help() 함수
______1.7.2 example() 함수
______1.7.3 무엇을 찾는지 정확하게 모르는 경우
______1.7.4 다른 주제들에 대한 도움말
______1.7.5 배치 모드에서의 도움말
______1.7.6 인터넷 도움말
2장 벡터
___2.1 스칼라, 벡터, 배열, 행렬
______2.1.1 벡터에 원소 추가 또는 삭제하기
______2.1.2 벡터의 길이 파악하기
______2.1.3 행렬과 배열을 벡터처럼 사용하기
___2.2 선언
___2.3 재사용
___2.4 일반 벡터 연산
______2.4.1 벡터의 산술 및 논리 연산
______2.4.2 벡터 인덱싱
______2.4.3 연산자로 유용한 벡터 생성하기
______2.4.4 seq()를 이용해 벡터 순서 생성하기
______2.4.5 rep()을 이용해 숫자 반복 벡터 만들기
___2.5 all()과 any() 사용하기
______2.5.1 확장 예제: 1이 연달아 나오는 부분 찾기
______2.5.2 확장 예제: 이산적 시계열값 예측하기
___2.6 벡터화 연산
______2.6.1 벡터 입력과 출력
______2.6.2 벡터 입력, 행렬 출력
___2.7 NA와 NULL값
______2.7.1 NA 사용하기
______2.7.2 NULL 사용하기
___2.8 필터링
______2.8.1 필터링된 인덱스 생성하기
______2.8.2 subset() 함수로 필터링하기
______2.8.3 선택 함수 which()
___2.9 벡터화 된 조건문: ifelse() 함수
______2.9.1 확장 예제: 연관성 측정
______2.9.2 확장 예제: Abalone 데이터 세트 기록하기
___2.10 벡터 동일성 테스트
___2.11 벡터 원소의 이름
___2.12 c() 이상의 것
3장 행렬과 배열
___3.1 행렬 만들기
___3.2 일반 행렬 연산
______3.2.1 행렬에서 선형대수 연산 처리
______3.2.2 행렬 인덱싱
______3.2.3 확장 예제: 이미지 다루기
______3.2.4 행렬 필터링
______3.2.5 확장 예제: 공분산 행렬 생성하기
___3.3 행렬의 행과 열에 함수 적용하기
______3.3.1 apply() 함수 사용하기
______3.3.2 확장 예제: 아웃라이어 탐색
___3.4 행렬에 행과 열 추가 및 제거하기
______3.4.1 행렬 크기 바꾸기
______3.4.2 확장 예제: 그래프에서 서로 거리가 가장 가까운 두 점 찾기
___3.5 벡터/행렬을 더 정확히 구분하기
___3.6 의도하지 않은 차원 축소 피하기
___3.7 행렬의 행과 열에 이름 붙이기
___3.8 고차원 배열
4장 리스트
___4.1 리스트 생성하기
___4.2 일반 리스트 연산
______4.2.1 리스트 인덱싱
______4.2.2 리스트에 원소를 추가하고 삭제하기
______4.2.3 리스트의 크기 확인하기
______4.2.4 확장 예제: 텍스트 일치 확인하기(1)
___4.3 리스트 구성요소와 값에 접근하기
___4.4 리스트에 함수 적용하기
______4.4.1 lapply()와 sapply() 함수 사용하기
______4.4.2 확장 예제: 텍스트 일치 확인하기(2)
______4.4.3 확장 예제: 다시 Abalone 데이터 사용하기
___4.5 재귀 리스트
5장 데이터 프레임
___5.1 데이터 프레임 생성하기
______5.1.1 데이터 프레임에 접근하기
______5.1.2 확장 예제: 시험 성적을 회귀 분석하기(2)
___5.2 기타 행렬 방식 연산
______5.2.1 부분 데이터 프레임 추출하기
______5.2.2 NA 값을 다루는 추가적 방법들
______5.2.3 rbind()와 cbind() 및 관련 함수 사용하기
______5.2.4 apply() 적용하기
______5.2.5 확장 예제: 월급 연구
___5.3 데이터 프레임 결합하기
______5.3.1 확장 예제: 직원 데이터베이스
___5.4 데이터 프레임에 함수 적용하기
______5.4.1 데이터 프레임에 lapply()와 sapply() 사용하기
______5.4.2 확장 예제: 로지스틱 회귀 모델 적용하기
______5.4.3 확장 예제: 중국어 사투리 공부 도와주기
6장 팩터와 테이블
___6.1 팩터와 레벨
___6.2 팩터에 사용되는 일반적인 함수
______6.2.1 tapply() 함수
______6.2.2 split() 함수
______6.2.3 by() 함수
___6.3 테이블 사용하기
______6.3.1 테이블로 행렬/배열 연산하기
______6.3.2 확장 예제: 부분 테이블 추출하기
______6.3.3 확장 예제: 테이블에서 가장 큰 셀 찾기
___6.4 그 밖의 팩터 및 테이블 관련 함수
______6.4.1 aggregate() 함수
______6.4.2 cut() 함수
7장 R 프로그래밍 구조
___7.1 조건문
______7.1.1 반복문
______7.1.2 벡터 이외의 유형을 사용하는 반복문
______7.1.3 if-else
___7.2 산술 및 불리언 연산 및 값
___7.3 인수의 기본값
___7.4 반환값
______7.4.1 명시적으로 return()을 호출할지 판단하기
______7.4.2 복잡한 객체 반환하기
___7.5 함수는 객체다
___7.6 환경 설정 및 범위 문제
______7.6.1 최상위 레벨 환경변수
______7.6.2 범위 계층 구조
______7.6.3 ls() 좀 더 살펴보기
______7.6.4 함수는 거의 부작용이 없다
______7.6.5 확장 예제: 호출 프레임의 내용을 보여주는 함수
___7.7 R에는 포인터가 없다
___7.8 위층에 쓰기
______7.8.1 고급 할당 연산자를 이용한 지역 외 변수 사용하기
______7.8.2 assign()을 이용해 지역 외 변수 사용하기
______7.8.3 확장 예제: R에서의 이산 사건 시뮬레이션
______7.8.4 광역 변수는 언제 사용해야 하나?
______7.8.5 클로저(Closure)
___7.9 재귀
______7.9.1 퀵소트 구현
______7.9.2 확장 예제: 바이너리 서치 트리
___7.10 교체 함수
______7.10.1 교체 함수를 사용할 때 고려해야 하는 사항
______7.10.2 확장 예제: 자동 부기 벡터 클래스
___7.11 함수 코드 작성용 도구
______7.11.1 텍스트 에디터와 통합 개발 툴
______7.11.2 edit() 함수
___7.12 자신만의 바이너리 연산자 사용하기
___7.13 무기명 함수
8장 R에서 수학과 시뮬레이션 하기
___8.1 수학 함수
______8.1.1 확장 예제: 확률 계산
______8.1.2 누적 합과 곱
______8.1.3 최소값과 최대값(복수 가능)
______8.1.4 미적분
___8.2 통계 분포를 위한 함수
___8.3 정렬
___8.4 벡터와 행렬의 선형 대수 연산
______8.4.1 확장 예제: 벡터 외적
______8.4.2 확장 예제: 마코브 체인(Markov Chain)의 고정 분포 찾기
___8.5 집합 연산
___8.6 R에서 시뮬레이션 프로그래밍 하기
______8.6.1 내장 랜덤 변수 생성기
______8.6.2 반복 수행 시에 동일한 랜덤 연속값 얻기
______8.6.3 확장 예제: 조합 시뮬레이션
9장 객체 지향 프로그래밍
___9.1 S3 클래스
______9.1.1 S3 제네릭 함수
______9.1.2 예제: 선형 모델 함수 lm()에서 OOP
______9.1.3 제네릭 메소드 실행 내역 찾기
______9.1.4 S3 클래스 작성하기
______9.1.5 상속 사용하기
______9.1.6 확장 예제: 위 삼각 행렬 저장 클래스
______9.1.7 확장 예제: 다항 회귀 분석 과정
___9.2 S4 클래스
______9.2.1 S4 클래스 작성하기
______9.2.2 S4 클래스에서 제네릭 함수 구현하기
___9.3 S3 대 S4
___9.4 객체 관리하기
______9.4.1 ls() 함수를 사용해 객체 나열하기
______9.4.2 rm() 함수를 사용해 특정 객체 제거하기
______9.4.3 save() 함수를 사용해 객체들을 저장하기
______9.4.4 “이건 뭐지?”
______9.4.5 exists() 함수
10장 입력과 출력
___10.1 키보드와 모니터에 접근하기
______10.1.1 scan() 함수 사용하기
______10.1.2 readline() 함수 사용하기
______10.1.3 화면에 출력하기
___10.2 파일 읽고 쓰기
______10.2.1 파일에서 데이터 프레임이나 행렬 읽어오기
______10.2.2 텍스트 파일 읽기
______10.2.3 커넥션 입문
______10.2.4 확장 예제: PUMS 통계 파일
______10.2.5 URL을 통해 원격으로 파일에 접속하기
______10.2.6 파일에 쓰기
______10.2.7 파일과 디렉터리 정보 얻기
______10.2.8 확장 예제: 많은 파일의 내용의 합
___10.3 인터넷에 접근하기
______10.3.1 TCP/IP 개요
______10.3.2 R의 소켓
______10.3.3 확장 예제: 병렬처리 R 구현하기
11장 문자열 처리
___11.1 문자열 처리 함수 개요
______11.1.1 grep()
______11.1.2 nchar()
______11.1.3 paste()
______11.1.4 sprint()
______11.1.5 substr()
______11.1.6 strsplit()
______11.1.7 regexpr()
______11.1.8 gregexpr()
___11.2 정규 표현식
______11.2.1 확장 예제: 주어진 확장자의 파일명 테스트
______11.2.2 확장 예제: 파일명 구성하기
___11.3 디버깅 도구 edtdbg에서 문자열 관련 기능 사용하기
12장 그래픽
___12.1 그래프 만들기
______12.1.1 R 기본 그래픽의 주요 담당자: plot() 함수
______12.1.2 선 추가하기: abline() 함수
______12.1.3 기존 것을 유지한 상태로 새 그래프 그리기
______12.1.4 확장 예제: 한 화면에 두 개의 밀도 추정 그래프 나타내기
______12.1.5 확장 예제: 다항 회귀 예제
______12.1.6 점 추가: points() 함수
______12.1.7 범례 추가: legend() 함수
______12.1.8 텍스트 추가: text() 함수
______12.1.9 위치 찾기: locator() 함수
______12.1.10 그래프 복구
___12.2 그래프 꾸미기
______12.2.1 문자 크게 조절: cex 옵션
______12.2.2 축의 범위 바꾸기: xlim과 ylim 옵션
______12.2.3 다각형 추가. polygon() 함수
______12.2.4 선의 곡선화: lowess()와 loess() 함수
______12.2.5 명시적 함수 그래프화
______12.2.6 확장 예제: 곡선의 일부를 확대하기
___12.3 그래프를 파일에 저장하기
______12.3.1 R 그래픽 장치
______12.3.2 출력된 그래프 저장하기
______12.3.3 R 그래픽 장치 닫기
___12.4 3차원 그래프 생성하기
13장 디버깅
___13.1 디버깅의 기본 원칙
______13.1.1 디버깅의 기본: 확인 원칙
______13.1.2 작은 것부터 시작하기
______13.1.3 모듈식, 하향식 디버깅
______13.1.4 버그 예방
___13.2 왜 디버깅 도구를 사용할까?
___13.3 R 디버깅 기능 사용하기
______13.3.1 debug()와 browser() 함수를 사용한 개별 단계 살펴보기
______13.3.2 브라우저 명령어 사용하기
______13.3.3 중단점 설정하기
______13.3.4 trace() 함수로 추적하기
______13.3.5 충돌 발생 후 traceback()과 debugger() 함수를 사용해 확인하기
______13.3.6 확장 예제: 두 가지의 전체 디버깅 과정
___13.4 국제적인 움직임: 보다 편리한 디버깅 도구
___13.5 시뮬레이션 코드 디버깅에서의 일관성 보장하기
___13.6 구문 및 런타임 오류
___13.7 R 자체에서 GDB 실행하기
14장 성능 향상: 속도와 메모리
___14.1 빠른 R 코드 작성하기
___14.2 반복문에 대한 두려움
______14.2.1 속도 향상을 위한 벡터화
______14.2.2 확장 예제: 몬테카를로 시뮬레이션의 속도를 향상시키기
______14.2.3 확장 예제: 멱행렬 생성하기
___14.3 함수형 프로그래밍과 메모리 문제
______14.3.1 벡터 할당 문제
______14.3.2 복사 후 변경 문제
______14.3.3 확장 예제: 메모리 복사 피하기
___14.4 코드에서 느린 부분을 찾을 때 사용하는 Rprof()
______14.4.1 Rprof()를 사용한 모니터링
______14.4.2 Rprof()의 작동 원리
___14.5 바이트 코드 컴파일
___14.6 데이터가 메모리에 들어가지 않아요!
______14.6.1 청킹
______14.6.2 메모리 관리를 위한 R 패키지 사용하기
15장 타 언어와 R을 인터페이스하기
___15.1 R에서 호출하는 C/C++ 함수 작성하기
______15.1.1 R을 C/C++과 연동할 때의 선행지식
______15.1.2 예제: 정사각 행렬에서 부분 대각행렬 추출
______15.1.3 컴파일하고 코드 실행하기
______15.1.4 R/C 코드 디버깅하기
______15.1.5 확장 예제: 이산 시계열값 예측
___15.2 파이썬에서 R 사용하기
______15.2.1 RPy 설치하기
______15.2.2 RPy 문법
16장 병렬 R
___16.1 상호 아웃링크 문제
___16.2 snow 패키지 소개
______16.2.1 snow 코드 실행하기
______16.2.2 snow 코드 분석하기
______16.2.3 어느 정도의 속도 향상이 가능할까
______16.2.4 확장 예제: K-평균 클러스터링
___16.3 C 사용하기
______16.3.1 멀티코어 사용하기
______16.3.2 확장 예제: OpenMP에서의 상호 아웃링크 문제
______16.3.3 OpemMP 코드 실행하기
______16.3.4 OpenMP 코드 분석
______16.3.5 다른 OpenMP 프라그마
______16.3.6 GPU 프로그래밍
___16.4 성능에 대해 일반적으로 고려할 사항
______16.4.1 과부하의 원인
______16.4.2 당황스러운 병렬 어플리케이션과 그렇지 않은 어플리케이션의 차이
______16.4.3 정적 할당 대 동적 할당
______16.4.4 소프트웨어 연금술: 일반적인 문제를 당황스러운 병렬 문제로 바꾸기
___16.5 병렬 R 코드 디버깅하기
부록 AR 설치하기
___A.1 CRAN에서 R 내려 받기
___A.2 리눅스 패키지 매니저를 사용해 설치하기
___A.3 소스 파일로 설치하기
부록 B 패키지 설치 및 사용
___B.1 기본 패키지
___B.2 하드 디스크에서 패키지 불러오기
___B.3 웹에서 패키지 다운로드하기
______B.3.1 자동으로 패키지 설치하기
______B.3.2 수동으로 패키지 설치하기
___B.4 패키지 내의 함수 리스트 보기