본문 바로가기
Study/R

R-Cookbook 소개

by FLIEG 2015. 1. 6.
반응형


이 책은 R프로그래밍을 공부하는 사람에게 꼭 추천해주고 싶은 명작이다.


저자는 Paul Teetor이며, 이 Cookbook의 다른 시리즈로서, R Graphics Cookbook도 따로 존재한다. 아마 그래픽스 부분에서 더 체계적인 설명이 되어있을듯.





일단 책이 두꺼운 편이다. 설명히 자세하고 다루는 내용이 많아서 그렇다.


이 책은 저술된 방식이 아주 독특하며, 가장 마음에 드는 부분이다!!

문제 -> 해결책 -> 논의 -> 더 알아보기 의 순으로 되어있다. 즉, 각 항목별로 '두괄식'의 전개를 보인다.

따라서, R코딩시 내가 직면한 문제를 가장 빠르게 찾을 수 있고, 해결도 가능하다!

예를들어, 어떤 (n*n) 행렬이 있는데, n개의 모든 행에 대해 특정 함수를 적용시키고 싶을때,,, 그저 이 책의 목차(Contents)를 펴고, 내가 직면한 문제에 해당하는 "모든 행에 대한 함수 적용"이라는 파트를 찾으면 된다. 해당 페이지를 펴면 내가 고민하고 있던 문제는 해결되는 셈이다. 


또한, R graphics를 몇 개의 예제위주로 설명해주면서 동시에 아주 테크니컬한 부분까지 속시원하게 다루어준다. 대부분의 그래픽 파라미터들을 다루며, 일단은 유용한 파라미터들은 깔끔하게 정리가 되어있다.








(그래픽 파라미터는, 그 종류도 많으며, 익히는데 시간이 오래걸린다.)









또한, 이 책이 좋은 점은 중간중간에 '통계학적 조언'내지는 '주의해야할 점' 들이 존재한다.

R을 활용한 통계학은 얼핏보면 technical한 측면이 강조되는것 같지만, 사실은 개발자의 통계학적 지식이 최우선이기 때문에, 우리가 흔히 저지를 수 있는 통계학적인 실수들에 빠지지 않는 것이 중요하다.


특히, N/A값들에 대해 세심한 주의가 요구되는 일이 다반사인데, R cookbook의 경우 친절하게도 다음과같이 주의사항을 만들어놓았다.

삭제해도 데이터가 충분할까?


데이터에서 관측값을 누락하는 것은 계산적으로나 통계학적으로 결과를 의미없게 만들어 버릴 수 있다는 위험성이 있다. 여러분 개개인의 상황에서 데이터를 누락해도 되는지를 확실히 알고 있도록 하자. 더불어 na.omit함수는 NA값만이 아니라 행 전체를 삭제하므로, 유용한 정보가 함께 삭제될 수 있다는 점도 기억해 두자.


아주 친절하다! 이러한 상자들이 책 곳곳에 심어져 있다.








또다른 특징은 바로 데이터 구조 및 핸들링에 대해 많이 배울 수 있다는 점이다.


5장과 6장은 각각 '데이터 구조', '데이터 변형'으로서, 데이터를 다루는것만으로도 책의 많은 부분이 할애되어있다.


벡터, 행렬, 리스트, 요인, 데이터프레임, 네트워크, 확률분포 등등...R에서 활용하는 데이터의 종류는 매우 많다.

이 상이한 종류의 데이터들을 분석함에 있어서 데이터를 제대로 다룰 수 없다면 많은 시간을 잡아먹을 수밖에 없다.


이번학기에 EDA수업을 들으면서 항상 느꼈던 것은, R 프로그래밍에 있어서 가장 시간을 많이 낭비하는 부분이 바로 이 데이터 핸들링 부분이었다. 나만 그랬던게 아니라 다른 많은 학생들이 이 부분에서 고생을 했었다. 


좋은 함수들과 알고리즘에 대한 빠삭한 이해가 있더라도, 데이터형태를 정복하지못하면 R프로그래밍은 어려울 것이다!









그리고 역시나 R하면 빠질수 없는 여러가지 Plotting기법들에 대해 아주 자세히 다루어져 있다.

통계적인 분석은 자신있는데, 왠지 plotting에 자신이 없는 사람도 이 책을 보면 자신감이 쑥쑥 상승할 것이라 확신함 ㅎㅎ










또한, 몇몇 교재에서는 아예 소개조차도 되지 않는, '비모수적 검정'까지도 아주 소개가 잘 되어있다. 

스피어만의 상관계수를 이용한 비모수적 검정을 임의로 해본것인데 이에 대한 지식이 아예 없는 사람들도 순서대로 잘 따라갈 수 있게끔 이론적 배경까지도 설명이 잘 되어있다!


현실에서는 정규성을 만족하는 데이터가 거의 없기 때문에, 이러한 비모수적 검정법을 알아두는것이 중요한데, R을 통해서 간단히 해볼 수 있도록 친절하게 설명까지 되어있으니 참 좋은 책이다.








다음은 이 책의 목차이다.


목차


1장 시작하기와 도움 얻기 

1.1 R 다운로드와 설치 

1.2 R 시작하기 

1.3 커맨드 입력하기 

1.4 R에서 나가기 

1.5 R을 잠깐 중단하기 

1.6 제공된 문서 읽기 

1.7 함수 도움말 보기 

1.8 제공된 문서를 검색하기 

1.9 패키지 도움말 보기 

1.10 인터넷 검색으로 도움말 보기 

1.11 적절한 함수와 패키지 찾기 

1.12 메일링 리스트 검색하기 

1.13 메일링 리스트에 질문 보내기 


2장 기초 사항들 

2.1 출력하기 

2.2 변수 설정하기 

2.3 변수 나열하기 

2.4 변수 삭제하기 

2.5 벡터 생성하기 

2.6 기본적인 통계량 계산하기 

2.7 수열 생성하기 

2.8 벡터 비교하기 

2.9 벡터에 있는 원소 선택하기 

2.10 벡터 연산 수행하기 

2.11 연산자 우선 순위 틀리지 않기 

2.12 R 함수 정의하기 

2.13 더 적게 입력하고 많이 얻어내기 

2.14 흔히 하는 실수 


3장 R 둘러보기 

3.1 작업 디렉터리 알아내기와 설정하기 

3.2 작업 공간 저장하기 

3.3 커맨드 히스토리 보기 

3.4 이전 커맨드의 결과 저장하기 

3.5 검색 경로 보기 

3.6 패키지의 함수에 접근하기 

3.7 내장된 데이터세트에 접근하기 

3.8 설치된 패키지 목록 보기 

3.9 CRAN에서 패키지 설치하기 

3.10 CRAN 미러 사이트 기본 설정하기 

3.11 시작 메시지 그만 보기 

3.12 스크립트 실행하기 

3.13 일괄 실행 스크립트 실행하기 

3.14 환경 변수 알아내기와 설정하기 

3.15 R의 홈 디렉터리 찾아내기 

3.16 R 커스터마이징하기 


4장 입력과 출력 

4.1 키보드로 데이터 입력하기 

4.2 자릿수 더 적게(혹은 더 많이) 출력하기 

4.3 출력을 파일로 리디렉션하기 

4.4 파일 목록 보기 

4.5 윈도에서 나타나는 ‘Cannot Open File(파일을 열 수 없음)’ 해결하기 

4.6 고정폭 레코드 읽기 

4.7 테이블로 된 데이터 파일 읽기 

4.8 CSV 파일에서 읽어오기 

4.9 CSV 파일로 쓰기 

4.10 웹에서 테이블 혹은 CSV 데이터를 읽어오기 

4.11 HTML 테이블에서 데이터 읽어오기 

4.12 복잡한 구조를 가진 파일 읽기 

4.13 MySQL 데이터베이스에서 읽어오기 

4.14 객체를 저장하고 전송하기 


5장 데이터 구조 

5.1 벡터에 데이터 추가하기 

5.2 벡터에 데이터 삽입하기 

5.3 재활용 규칙 이해하기 

5.4 요인 생성하기(범주형 변수) 

5.5 여러 벡터를 합쳐서 하나의 벡터와 요인으로 만들기 

5.6 목록 생성하기 

5.7 위치로 목록의 원소 선택하기 

5.8 이름으로 목록의 원소 선택하기 

5.9 이름/값 연계 목록 만들기 

5.10 목록에서 원소 제거하기 

5.11 목록의 구조를 없애 벡터로 만들기 

5.12 NULL 원소를 목록에서 제거하기 

5.13 조건을 사용해 목록의 원소 제거하기 

5.14 행렬의 초기 내용 설정하기 

5.15 행렬의 연산 수행하기 

5.16 행렬의 행과 열에 친절한 이름 붙이기 

5.17 행렬에서 하나의 행 또는 열을 선택하기 

5.18 열에서 데이터를 가져와 데이터 프레임의 초기 내용 설정하기 

5.19 행에서 데이터를 가져와 데이터 프레임의 초기 내용 설정하기 

5.20 데이터 프레임에 행 추가하기 

5.21 데이터 프레임 사전 할당하기 

5.22 위치로 데이터 프레임의 열 선택하기 

5.23 이름으로 데이터 프레임의 열 선택하기 

5.24 더 쉽게 행과 열 선택하기 

5.25 데이터 프레임의 열 이름 바꾸기 

5.26 데이터 프레임 편집하기 

5.27 데이터 프레임에서 NA 제거하기 

5.28 이름으로 열 제외하기 

5.29 데이터 프레임 두 개 합치기 

5.30 하나의 공통된 열로 데이터 프레임 병합하기 

5.31 데이터 프레임의 내용에 더 쉽게 접근하기 

5.32 하나의 단일값을 다른 것으로 변환하기 

5.33 하나의 구조로 된 자료형을 다른 자료형으로 변환하기 


6장 데이터 변형 

6.1 벡터를 여러 집단으로 분할하기 

6.2 목록의 각 원소에 함수 적용하기 

6.3 모든 행에 함수 적용하기 

6.4 모든 열에 함수 적용하기 

6.5 데이터 집단에 함수 적용하기 

6.6 행 집단에 함수 적용하기 

6.7 상응하는 벡터들 또는 목록들에 함수 적용하기 


7장 문자열과 날짜 

7.1 문자열의 길이 알아내기 

7.2 문자열 연결하기 

7.3 하위 문자열 추출하기 

7.4 구분 문자로 문자열 변환하기 

7.5 하위 문자열 대체하기 

7.6 문자열에서 특수문자 보기 

7.7 문자열의 모든 쌍별 조합 만들기 

7.8 현재 날짜 알아내기 

7.9 문자열을 날짜로 변환하기 

7.10 날짜를 문자열로 변환하기 

7.11 연, 월, 일을 날짜로 변환하기 

7.12 율리우스력 날짜 알아내기 

7.13 날짜의 일부 추출하기 

7.14 날짜로 된 수열 생성하기 


8장 확률 

8.1 조합의 개수 세기 

8.2 조합 생성하기 

8.3 난수 생성하기 

8.4 재현 가능한 난수 생성하기 

8.5 랜덤 표본 생성하기 

8.6 랜덤 수열 생성하기 

8.7 랜덤으로 벡터의 순열 만들기 

8.8 이산분포의 확률 계산하기 

8.9 연속분포의 확률 계산하기 

8.10 확률을 분위수로 변환하기 

8.11 밀도함수 그래프로 그리기 



9장 일반통계 

9.1 데이터 요약하기 

9.2 상대도수 계산하기 

9.3 요인을 표로 만들기, 분할표 생성하기 

9.4 범주형 변수의 독립성 검사하기 

9.5 데이터세트의 분위수 및 사분위수 계산하기 

9.6 역분위수 구하기 

9.7 데이터를 z점수로 변혼하기 

9.8 표본의 평균 검사하기(t 검정) 

9.9 평균에 대한 신뢰구간 형성하기 

9.10 중앙값에 대한 신뢰구간 형성하기 

9.11 표본비율 검사하기 

9.12 비율에 대한 신뢰구간 형성하기 

9.13 정규성 검사하기 

9.14 연속에 대해 검사하기 

9.15 두 표본의 평균 비교하기 

9.16 비모수적으로 두 표본의 위치 비교하기 

9.17 상관관계의 유의성 검사하기 

9.18 집단들이 동일 비율로 되어있는지 검사하기 

9.19 집단 평균들을 쌍별로 비교하기 

9.20 두 표본이 동일 분포에서 왔는지 검사하기 


10장 그래픽스 

10.1 산점도 생성하기 

10.2 제목과 라벨 추가하기 

10.3 격자 추가하기 

10.4 여러 집단의 산포도 생성하기 

10.5 범례 추가하기 

10.6 산점도의 회귀선 그리기 

10.7 모든 변수들 간 그래프 그리기 

10.8 요인 수준별 산점도 하나씩 생성하기 

10.9 막대그래프 생성하기 

10.10 막대그래프에 신뢰구간 추가하기 

10.11 막대그래프 칠하기 

10.12 x와 y점으로 선 그리기 

10.13 선의 유형, 두께, 색상 변경하기 

10.14 여러 개의 데이터세트를 그래프로 그리기 

10.15 수직선 또는 수평선 추가하기 

10.16 박스플롯 생성하기 

10.17 각 요인 수준별 박스플롯 하나씩 생성하기 

10.18 히스토그램 생성하기 

10.19 히스토그램에 추정 밀도 추가하기 

10.20 이산 히스토그램 생성하기 

10.21 정규 분위수-분위수 그래프(Q-Q) 생성하기 

10.22 다른 분위수-분위수 그래프 생성하기 

10.23 그래프의 변수를 다양한 색상으로 만들기 

10.24 함수를 그래프로 그리기 

10.25 여러 그래프르 그릴 때 일시정지하기 

10.26 한 페이지에 여러 개의 도표 나타내기 

10.27 그래픽스 창 추가로 열기 

10.28 그래프를 파일에 쓰기 

10.29 그래픽 매개변수 변경하기 


11장 선형회귀와 분산분석 

11.1 단순선형회귀 실시하기 

11.2 다중선형회귀 실시하기 

11.3 회귀통계량 알아내기 

11.4 회귀의 요약 결과 이해하기 

11.5 절편이 없는 선형회귀 실시하기 

11.6 상호작용 항을 넣어 선형회귀 실시하기 

11.7 최선의 회귀변수 선택하기 

11.8 데이터의 부분집합에 대해 회귀분석하기 

11.9 회귀식 내에 표현식 사용하기 

11.10 다항식 회귀분석하기 

11.11 변환된 데이터를 회귀분석하기 

11.12 최적의 거듭제곱 변환 찾기(박스-칵스 절차) 

11.13 회귀계수의 신뢰구간 형성하기 

11.14 회귀 잔차 그래프 그리기 

11.15 선형회귀 진단하기 

11.16 영향력이 큰 관찰 판별하기 

11.17 잔차의 자기상관 검정하기(Durbin-Watson 검정) 

11.18 새로운 값들 예측하기 

11.19 예측구간 형성하기 

11.20 일원분산분석 수행하기 

11.21 상호작용 그래프 생성하기 

11.22 집단 평균들 간의 차이 알아내기 

11.23 로버스트 분산분석(Kruskal-Wallis 검정) 수행하기 

11.24 분산분석을 사용해서 모델 비교하기 


12장 쓸만한 요령들 

12.1 데이터 조금만 보기 

12.2 가로를 넓혀서 출력하기 

12.3 대입 결과를 출력하기 

12.4 행과 열 합계 내기 

12.5 열의 형태로 데이터 출력하기 

12.6 데이터 묶기 

12.7 특정 값의 위치 찾기 

12.8 벡터의 매 n번째 원소 선택하기 

12.9 원소쌍의 최저 또는 최댓값 찾기 

12.10 여러 개 요인의 모든 조합 생성하기 

12.11 데이터 프레임의 구조 없애기 

12.12 데이터 프레임 정렬하기 

12.13 두 개의 열을 기준으로 정렬하기 

12.14 변수에서 속성 벗겨내기 

12.15 객체의 구조 알아내기 

12.16 코드 시간 재기 

12.17 경고와 에러 메시지 숨기기 

12.18 목록에서 함수 인자 꺼내기 

12.19 자신만의 이항 연산자 정의하기 


13장 기본 숫자와 통계 이상의 기능 

13.1 단일 매개변수 함수를 최대화 또는 최소화하는 값 찾기 

13.2 다중 매개변수 함수를 최소화 또는 최대화하는 값 찾기 

13.3 고유값과 고유벡터 계산하기 

13.4 주성분 분석 수행하기 

13.5 단순 직교회귀 실시하기 

13.6 데이터에서 군집 찾기 

13.7 이진값으로 된 변수 예측하기(로지스틱 회귀) 

13.8 통계량 부트스트랩하기 

13.9 요인분석 


14장 시계열 분석 

14.1 시계열 데이터 표현하기 

14.2 시계열 데이터 그래프로 그리기 

14.3 가장 오래 전 또는 가장 최근 관찰 추출하기 

14.4 시계열 부분집합 만들기 

14.5 여러 시계열 병합하기 

14.6 시계열 밀기 또는 채우기 

14.7 시계열 늦추기 

14.8 연속차분 계산하기 

14.9 시계열 데이터에 계산 수행하기 

14.10 이동평균 계산하기 

14.11 달력 주기로 함수 적용하기 

14.12 롤링 함수 적용하기 

14.13 자기상관 함수 그리기 

14.14 시계열의 자기상관 검사하기 

14.15 부분 자기상관 함수 그리기 

14.16 두 시계열 사이의 시차상관 찾아내기 

14.17 시계열의 추세 없애기 

14.18 ARIMA 모델 적합시키기 

14.19 유의미하지 않은 ARIMA 계수 제거하기 

14.20 ARIMA 모델 진단하기 

14.21 ARIMA 모델을 통해 예측하기 

14.22 평균회귀성 검사하기 

14.23 시계열 평활하게 만들기






R Cookbook 사러가기 (http://YES24.com)


반응형

'Study > R' 카테고리의 다른 글

쓸만한 R함수 및 코드들 .txt  (0) 2015.01.05
R studio 소개 (R 프로그래밍을 좀 더 간편하게!)  (0) 2014.10.03