HOME > Detail View

Detail View

R과 Knitr를 활용한 데이터 연동형 문서 만들기 : 빅데이터 시대의 효율적인 자료 작성 가이드 (Loan 29 times)

Material type
단행본
Personal Author
고석범
Title Statement
R과 Knitr를 활용한 데이터 연동형 문서 만들기 : 빅데이터 시대의 효율적인 자료 작성 가이드 / 고석범 지음
Publication, Distribution, etc
의왕 :   에이콘,   2014  
Physical Medium
606 p. : 삽화, 도표 ; 25 cm
Series Statement
에이콘 데이터 과학 시리즈 = Data science series ; 13
ISBN
9788960775510 9788960774469 (Set)
Bibliography, Etc. Note
참고문헌(p. 600-602)과 색인수록
000 00804camcc2200253 c 4500
001 000045813785
005 20141022175205
007 ta
008 140514s2014 ggkad b 001c kor
020 ▼a 9788960775510 ▼g 94000
020 1 ▼a 9788960774469 (Set)
035 ▼a (KERIS)BIB000013475741
040 ▼a 211023 ▼c 211023 ▼d 211009
082 0 4 ▼a 005.55 ▼2 23
085 ▼a 005.55 ▼2 DDCK
090 ▼a 005.55 ▼b 2014
100 1 ▼a 고석범 ▼0 AUTH(211009)109104
245 1 0 ▼a R과 Knitr를 활용한 데이터 연동형 문서 만들기 : ▼b 빅데이터 시대의 효율적인 자료 작성 가이드 / ▼d 고석범 지음
260 ▼a 의왕 : ▼b 에이콘, ▼c 2014
300 ▼a 606 p. : ▼b 삽화, 도표 ; ▼c 25 cm
440 0 0 ▼a 에이콘 데이터 과학 시리즈 = ▼x Data science series ; ▼v 13
504 ▼a 참고문헌(p. 600-602)과 색인수록
945 ▼a KLPA

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(3F)/ Call Number 005.55 2014 Accession No. 111752066 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.55 2014 Accession No. 121231064 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(3F)/ Call Number 005.55 2014 Accession No. 111752066 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.55 2014 Accession No. 121231064 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

에이콘 데이터 과학 시리즈 13권. 이 책은 R 언어와 니터(Knitr) 패키지를 사용하여, '재현 가능한 연구(reproducible research)' 방법으로 인쇄물, 웹 페이지, 웹 프리젠테이션, 웹 애플리케이션 등의 다양한 데이터 문서와 자료를 만드는 방법을 소개한다.

이 책은 문자와 코드를 결합해 작업했을 때 얻을 수 있는 시너지를 설명한다. 여기서 문자란 자신의 생각을 글로 옮기는 텍스트를 의미하고, 코드는 데이터 분석을 위한 코드를 말한다. 이 책은 문자와 코드를 하나의 파일에서 작업할 수 있게 해주는 니터(knitr)라는 R 패키지를 사용해 다이나믹하게 다양한 포맷의 문서를 만드는 방법을 다룬다. 이 책에서 문서란 단순히 종이로 인쇄된 것만을 의미하지 않고 좀 더 광범위하게 정보를 전달하는 매체와 같이 광범위한 의미를 가진 단어로 사용한다.

R 언어를 처음 접하는 독자를 위해 R 언어에 대한 기초적인 측면을 소개했고, R 언어로 큰 데이터를 어떻게 효율적으로 다룰 수 있는지에 대한 사례도 넣었다. 이 책에서 소개하는 방법을 사용하려면 R 언어 이외에 마크다운(markdown)이나 레이텍(LaTex) 같은 마크업 언어도 알아야 한다. 이 책에서는 이들 마크업 언어들을 쉽게 접근할 수 있도록 초보자의 입장에서 소개했기 때문에 쉽게 배우고 널리 활용할 수 있도록 구성했다.

★ 요약 ★

이 책은 R 언어와 니터(Knitr) 패키지를 사용하여, '재현 가능한 연구(reproducible research)' 방법으로 인쇄물, 웹 페이지, 웹 프리젠테이션, 웹 애플리케이션 같은 다양한 데이터 문서와 자료를 만드는 방법을 소개한다.
이 책에서 설명하는 모든 문서와 자료는 데이터와 다이나믹하게 연동되어 움직이고, 원래의 데이터와 결론에 이르는 과정을 투명하고 일관되게 보여줄 수 있다.

★ 이 책의 특징 ★

■ 데이터에 기반한 다이나믹하고 인터랙티브한 데이터 연동형 문서와 자료를 손쉽게 만들 수 있다.
■ 전문 개발자의 시선이 아닌 평범한 아마추어의 시각으로 접근함으로써 누구나 쉽게 따라 할 수 있다.
■ 다양한 R 패키지들을 자연스럽게 접근할 수 있도록 유도한다.
■ 기업형 프로젝트가 아닌 개인의 컴퓨터 사용 패턴에 맞춰 가장 흔하게 사용하는 오피스 프로그램의 기능을 대체할 수 있게 설명한다.
■ 오픈소스 도구를 이용해 설명하므로 추가 비용이 들지 않는다.
■ 하나의 일관된 로직으로 데이터를 분석하고 다양한 데이터 결과물을 만들 수 있도록 '하나의 로직, 다양한 결과물(One logic, Multi-views)' 관점으로 작업한 내용을 설명한다.

★ 이 책에서 다루는 내용 ★

■ R 언어의 기초
■ R스튜디오(RStudio) 사용의 기초
■ 니터(Knitr) 패키지로 R 언어와 마크다운을 하이브리드시키는 방법
■ 결과물을 엑셀이나 워드프로세서 프로그램에서 읽을 수 있는 형태로 변환시키는 방법
■ slidify와 rCharts 패키지로 재현 가능한 연구 방법으로 웹 슬라이드를 만들고, 다이나믹한 그래프를 넣는 방법
■ Shiny 웹 애플리케이션을 만드는 방법
■ 니터 패키지로 R 언어와 레이텍(LaTeX)을 하이브리드시키는 방법과 PDF 형태의 슬라이드를 만드는 방법
▶▶ 예제 파일 다운로드
이 책에서 사용된 예제 코드 파일은 에이콘출판사 사이트 도서정보 페이지(http://www.aconrpub.co.kr/book/r-knitr)와 저자의 깃허브(GitHub) 사이트(http://github.com/koseokbum/R-Knitr-Book)에서 내려받을 수 있다.

▶▶ 빅데이터 시대에 누구나 만들 수 있는 역동적인 데이터 연동형 문서
데이터는 어느 시대에나 중요했는데, 최근에는 컴퓨터 과학의 발전으로 말미암아 다룰 수 있는 데이터의 종류가 다양해지고 크기도 매우 커졌다. 그리고 빅데이터라는 단어가 시대의 흐름을 대표하기 시작했다. 이런 시대의 흐름은 매우 큰 것이라서 어떤 식으로든 모든 사람이 영향을 받을 수밖에 없다.
이 책은 이런 빅데이터 시대에 필요한 문서 작성법에 대해 다룬다. 제목만 봐서는 매우 거창할 것 같지만 그렇지는 않다. 데이터 마이닝이나 기계 학습과 같은 거창한 주제가 아니라, 일상 생활 속에서 작성하는 문서 작성에 관련된 것이고, 컴퓨터만 있으면 대부분 추가로 돈을 들이지 않아도 되는 무료 도구들을 가지고 설명할 것이다.
이 책은 문자와 코드를 섞어서 문서를 만드는 방법을 소개한다. 이 방법을 소개하기 전에 논문을 쓰거나 회사에서 보고서를 쓰는 등의 일상의 패턴을 살펴보자. 데이터를 바탕으로 글을 쓰는 작업 과정을 살펴보면 가장 흔한 패턴은 다음과 같다.
1. 원 데이터를 엑셀 등의 파일로 수집한다.
2. 엑셀로 계산하고 표를 만든다.
3. 통계 절차가 필요한 경우에는 SPSS 통계 소프트웨어로 읽어서 통계 분석을 한다. SPSS는 내가 일하는 의료계에서는 아직까지 가장 사용 빈도가 높은 데이터 분석 도구다.
4. 이렇게 만든 결과물에서 의미 있는 것들을 골라 워드프로세서에서 복사하기 & 붙여넣기 방법으로 가져와 최종 결과물을 만든다.
사용하는 소프트웨어는 다를 수 있겠지만, 비슷한 패턴은 수없이 발견된다. 이것이 뭐 대단한 문제라고 시간을 들여 새로운 방법을 배워야 할 가치가 있느냐고 질문할 수 있을 것이다. 그럭저럭 문제가 없는 것이 사실이고 그렇게도 보인다. 그렇지만 꼬집어 살펴보면 여러 가지 문제가 있다. 이런 문제를 정리해본다면 내 생각에는 효율성과 신뢰성이라는 큰 문제로 나눌 수 있다.

▶ 문서 작성의 효율성
먼저 효율성을 생각해보자. 이미 작업했던 원 데이터에 변화가 생겼다. 데이터가 추가되거나 일부 잘못된 것이 있어서 수정된 경우 등과 같은 일이 생긴다. 그러면 그동안 했던 작업 흐름을 똑같이 반복해야 한다. 시간과 노력이 더 필요할 것이고, 복사하기 & 붙여넣기 과정에서 오류가 생길 가능성이 높아진다.
나는 컴퓨터를 정식으로 공부하지 않은 순수한 아마추어다. 그래도 컴퓨터 개발자들의 생각과 작업 방식을 매우 흥미롭게 생각한다. 그중에는 일상과 업무에 적용해 도움을 받을 수 있는 부분이 많다. 예전부터 개발자들은 개발에서 DRYDon't Repeat Yourself(전체 프로그램에서 정보나 과정은 하나의 장소나 코드군으로 만들어야 한다) 원칙을 지키도록 훈련받아왔다. 이 원칙은 문서를 작성하는 데도 적용할 필요가 있다. 이렇게 하려면 데이터의 변동에 따라서 최종 결과물의 내용이 다이나믹하게 변경되는 시스템이 필요하다.
예를 들어 110명을 대상으로 얻은 엑셀 자료가 있을 때, 논문과 같은 문서에서 다음과 같이 쓸 것이다.

"이 연구에는 110명을 대상으로 조사한 것이다. …"

데이터와 연동되어 다이나믹한 방법으로 문서를 만든다면, 나중에 데이터가 115개로 늘었을 때 자동으로 최종 결과물의 내용이 다음과 같이 바뀌어야 할 것이다.

"이 연구에는 115명을 대상으로 조사한 것이다. …"

이렇게 역동적으로 숫자가 변화되게 하려면 컴퓨터 코드가 필요한데, 나는 R코드를 추천한다. 솔직히 아주 쉽다고는 말할 수 없지만, 그렇다고 그렇게 어려운 일은 아니다. 나 같은 아마추어도 사용할 만큼 충분히 쉽게 배울 수 있는 컴퓨터 언어다. 더욱 중요한 것이 R은 빅데이터 시대로 접어들면서 가장 각광받는 언어가 되고 있는데, 수백 가지나 되는 컴퓨터 언어 중에서 데이터 분석에서만큼은 가장 효율적이기 때문이다. 이 책은 R 언어에 기반한 다이나믹한 문서 작성 방법을 설명한다. 믿기지 않을 만큼 쉽다.

▶ 문서 작성의 신뢰성
다뤄야 하는 데이터가 복잡해지고 커졌다. 문서가 논문이거나 정책을 결정하기 위한 보고서라고 했을 때, 가장 중요한 것은 내용의 신뢰성이다. 의도하지 않더라도 복잡해지고 커지는 데이터를 가지고 작업하다보면 오류가 생길 수 있다. 이런 오류를 최대한 줄이려면 원 데이터에서 주장하는 최종 결론에 이르기까지의 과정이 공개되고 재검증되는 절차가 필요할 것이다. 이런 시대적인 흐름 때문에 '작업 가능한 연구'라는 명칭으로 「네이처」나 「사이언스」 같은 최고 권위의 과학잡지에서 하나의 정책을 세워 이를 지키려는 움직임들이 있다. 이에 관한 포괄적인 논의는 영국의 로얄소사이어티의 정책 보고서를 인터넷에서 찾아서 읽어볼 것을 권한다. 제목으로 구글 등에서 검색하면 쉽게 찾을 수 있다.
또 이런 흐름에 대비해 교육계에서도 변화를 주려는 움직임이 논문(Baumeret al. 2014) 등으로 소개되고 있다. 대학 기초 통계학 과정의 하나로서 이 논문에서 사용했던 방법은 이 책에서 소개하는 방법과 똑같다. 이 방법을 따른다면 앞서 이야기한 다이나믹한 문서 생산은 물론이고, 어떤 자료를 사용해 어떻게 계산했더니 이런 결론이 나왔다고 자신 있게 전부 내놓고 이야기할 수 있다. 굳이 이 책에서 어떻게 신뢰성을 획득할 것인지에 대해서는 강조해 이야기하지 않았다. 다만, 방법을 이해하고 나면 자연히 알게 될 것이다.

▶▶ 코드와 R을 지금 배워야 하는 이유

이 책에서 소개하는 방법도 단점이 없는 것은 아니다. 무엇보다 컴퓨터 언어를 배워야 하는 것이 가장 큰 장애물이다. 이 책에서 소개하는 방법만을 사용하기 위해서 새로운 언어를 배울 독자는 없을 것이다. 그렇지만, 다른 이유에서 이 책이 주로 사용하는 R을 배워야 하는 이유가 있다. 그것은 데이터가 주도하는 시대에서 R이 여러 영역에 걸쳐 데이터 분석 언어로 자리잡고 있기 때문이다.
어차피 배워야 하는 것이라면 배워서 더 유용하게 쓰자는 것이 이 책을 쓴 취지이기도 하다.
나는 이 책에서 소개하는 방법이 넘사벽이라고 생각하지 않는다. 개인적으로 컴퓨터 언어 등에 대한 교육을 체계적으로 받아본 적이 없다. R도 지금부터 3, 4년 전 돈 들이지 않고 쓸 수 있는 통계 패키지가 없을까 하고 찾아 보다 우연히 접하게 되었다. R을 매개로 하여 컴퓨터에 대한 지식을 아주 폭넓게 넓힐 수 있었다. 지금은 이 책의 내용을 누구의 도움도 없이 다룰 수 있는 수준이 되었다. 웹도 좀 만들 줄 알고, 스마트폰 속의 앱이 어떻게 어떻게 개발되는지도 알게 되었다. 그러나 컴퓨터 언어로 뭔가를 만들 줄 안다는 것이 근본적으로 중요한 것은 아니라고 생각한다. 가장 큰 변화는 생각의 방식이 바뀌었다는 것이다.
그렇기 때문에 영국이 2014년을 '코드의 해(Year of Code)'로 정해서 소프트웨어 교육을 보강하려고 하는 움직임이 이해가 가고,3 우리나라 정부에서 고등학교 교과과정에 소프트웨어를 정규 과목으로 넣으려고 하는 움직임이 꼭 필요한 것이라는 생각을 하게 된다.
코딩을 너무 어렵게만 보지 말자. 어린 아이들도 충분히 배워서 할 수 있다. 이런 내용에 관심 있는 분은 매우 인기 있는 강연 사이트인 TED에서 http://www.ted.com/talksmitch_resnick_let_s_teach_kids_to_code 부분을 찾아서 보면 좋을 것 같다.
이 책은 전문개발자가 쓴 책이 아니다. 아마추어로서 철저하게 초심자의 입장에서 쓰려고 했다. 개발자가 썼다면 내용에 좀 더 깊이가 있었겠지만 나는 그런 능력이 없다. 그래서 오히려 새로 시작하는 사람에게는 이런 접근이 도움이 될 수 있다는 생각을 한다. 가볍게 시작하여 앞에서 이야기했던 큰 것을 획득할 수 있기를 기대한다.

★ 이 책의 독자 대상 ★
# 보고서를 써야 하는 직장인 #
일반적으로 직장인이 보고서를 제대로 쓸 수 있는 것은 큰 능력의 하나로 인정 받는다. 매달 반복되는 보고서를 써야 하는 상황에 있다면 이 책에 있는 방법으로 해보길 권한다. 소소하고 일반적인 것들은 하나로 모아서 컴퓨터가 알아서 처리하게 만들면, 개인적인 판단이나 생각할 시간을 더 많이 벌게 될 것이고, 이런 과정에서 업무의 창의성이 높아지고 만족도가 올라갈 것이다. 파워포인트나 키노트가 아니라 웹 브라우저를 가지고, 정지된 그래프가 아니라 일사불란하게 움직이는 그래프를 보여준다면 그만큼 본인의 가치가 상승할 것이다. 다뤄야 하는 데이터가 많은 직장인일수록 이 책에서 더 큰 도움을 받을 것이다.

# 학교 선생님 #
앞으로 학생들이 살아갈 시대는 좋건 싫건 컴퓨터와 함께 할 수밖에 없다. 그런 시대를 대비하여 아이들에게 어떤 교육을 해야 하는지 고민하는 선생님들이라면 이 책의 방법을 배워보기를 감히 권한다. 업무에 효율성을 높일 수 있는 것은 물론이고 사소한 부분이지만 컴퓨터로 일하는 방식을 느껴볼 수 있는 좋은 아이템이라고 생각한다.

# 통계를 배우는 대학생 #
통계학은 어느 학과를 막론하고 교양의 필수 과목으로 채택되어 있는 경우가 많다. 처음 R은 통계학자들이 통계를 배우는 학생들을 위해 만들기 시작했기 때문에, 통계학에 매우 강력한 기능들을 가지고 있다. 더군다나 R은 무료이며, 활용가치가 매우 높은 언어다. 따라서 초심자도 이 책에서 소개하는 방법을 배운다면 앞으로 요긴하게 활용할 수 있을 것이라 생각해서 적극 추천한다.

# 데이터를 가지고 논문을 쓰는 학자 #
학자들은 데이터를 가지고 논문을 많이 쓴다. 앞에서도 잠깐 설명했지만 기존의 방법으론 효율성이 떨어진다. 그리고 앞으로 더 많은 학술지나 학술 단체들, 혹은 그 지식의 소비자들이 데이터와 분석의 신뢰성을 요구할 가능성은 점점 더 커질 것이다. 이런 측면에서 이 책에서 소개하는 방법은 도움이 될 것이다. 요구하는 데이터, 분석 과정을 모두 투명하게 정리하여 보여줄 수 있다. 학자분들이 가끔 사소한 질문을 하곤 한다. 데이터를 워드프로세서로 바꿀 수 있는지 묻는데, 이 일은 R이 할 수 있는 것 중에 극히 일부분이다.
영국 로얄소사이어티의 보고서는 「Science As an Open Enterprise」라는 다소 도발적인 제목을 달고 있다. 다뤄야 하는 데이터가 이전보다 훨씬 많아지고, 데이터 자체와 데이터 분석 과정에 대한 투명성을 앞으로 점점 더 많이 요구 받을 것이다. 그런 열린 세상을 준비하기 위해서는 이에 대한 이해와 준비가 필요하다고 생각한다.

# 데이터 사이언티스트 #
빅데이터 시대가 되면서 데이터 사이언티스트가 새로운 직군으로 부상하고 있다. 이들은 통계적 지식과 컴퓨터 지식이 충만하지만, 한편 너른 시야를 갖지 못할 경우도 많다. 그래서 지식과 기술은 뛰어난데, 정작 중요한 고객을 놓치는 우를 범하기도 한다. 데이터 사이언티스트들은 자신들이 분석한 결과를 소비할 고객들을 항상 생각해야 한다. 따라서 이 책은 결과를 고객들에게 어떤 형태로 전달해야 할지를 고민하는 데이터 사이언티스트들에게 도움이 될 것이다. 그게 종이로 인쇄된 문서일 수도 있고, 웹 페이지가 될 수도 있으며, 웹 애플리케이션이 될 수도 있다. 이 책은 결과를 어떻게 고객에게 전달할지를 다룬다.

# 프로그래머 #
솔직하게 이 책에서 소개하는 방법을 익히고 난 후, 나는 오피스 프로그램을 더 이상 사용하지 않게 되었다. 유연하지도 않으면서, 수많은 복사하기 & 붙여 넣기를 유도하는 데 지쳤다. 상업용 소프트웨어들이 가지는 사용자 직관성은 칭찬받아 마땅할 것인데, 그 유연하지 못함은 이제 견디기가 어렵다. 바라건대 워드프로세서에서 스프레드시트가 돌아가는 프로그램이 있었으면 한다. 프로그램도 완전한 오픈소스를 내놓을 수 없다고 할지라도 유연하게 구성하여, 데이터가 주도하는 시대에 걸맞도록 사용하기 편하게 만들어 주었으면 하는 것이 소비자의 한 사람으로서 가져보는 한 가지 바람이다.

# R을 배우기를 고민하는 독자 #
R은 빅데이터 시대에 들어서면서 가장 중요한 언어의 하나로 각광받고 있고, 학계나 산업계에 흔히 사용되고 있다. 따라서 배우지 않을 이유가 전혀 없다. 더군다나 데이터를 다루는 분야에서 R을 빼놓고는 넘어갈 수 없는 상황이 되어 가고 있다. 이 책에서는 R을 배우면 이런 것들도 가능하겠다는 동기를 부여하고 싶었다.

★ 이 책의 구성 ★

이 책은 문자와 코드를 결합해 작업했을 때 얻을 수 있는 시너지를 설명한다. 여기서 문자란 자신의 생각을 글로 옮기는 텍스트를 의미하고, 코드는 데이터 분석을 위한 코드를 말한다. 이 책은 문자와 코드를 하나의 파일에서 작업할 수 있게 해주는 니터(Knitr)라는 R 패키지를 사용해 다이나믹하게 다양한 포맷의 문서를 만드는 방법을 다룬다. 이 책에서 문서란 단순히 종이로 인쇄된 것만을 의미하지 않고 좀 더 광범위하게 정보를 전달하는 매체와 같이 광범위한 의미를 가진 단어로 사용한다.
R 언어를 처음 접하는 독자를 위해 R 언어에 대한 기초적인 측면을 소개했고, R 언어로 큰 데이터를 어떻게 효율적으로 다룰 수 있는지에 대한 사례도 넣었다. 이 책에서 소개하는 방법을 사용하려면 R 언어 이외에 마크다운(markdown)이나 레이텍(LaTeX) 같은 마크업 언어도 알아야 한다. 이 책에서는 이들 마크업 언어들을 쉽게 접근할 수 있도록 초보자의 입장에서 소개했기 때문에 쉽게 배우고 널리 활용할 수 있도록 구성했다.
이 책에서는 먼저 R + R 마크다운 하이브리드 방법을 설명하고, 차차 R + 레이텍 하이브리드 방법을 소개할 것이다.
이런 순서를 잡은 데에는 몇 가지 이유가 있다. 마크다운은 웹을 만드는 언어로서 HTML을 간편하게 사용하기 위한 언어다. 즉, 마크다운은 배우기 쉽고, 시간이 갈수록 웹 문서가 점점 더 중요해지고 있기 때문이다. R과 마크다운을 결합해 흔히 보는 웹 페이지 문서뿐만 아니라 웹 프리젠테이션, 웹 애플리케이션 등을 구현하는 방법을 설명한다. 마지막에는 레이텍 조판 언어와 R을 결합해 자료를 생성하는 방법을 다룬다. 레이텍은 유연성이 매우 높지만 배우기가 까다롭다. 그래도 웹 문서가 가지지 못한 장점을 가진 PDF 문서를 만들고, 논문이나 책과 같은 형식의 결과물을 얻을 수 있는 큰 장점이 있다.


Information Provided By: : Aladin

Table of Contents

1장 문자와 코드의 혼합 
1.1 문자와 코드를 혼합하는 방법의 역사 
1.2 니터 사용 방법의 기초 
1.3 전체 윤곽 설정 
1.4 데이터와 얻고자 하는 결과물 
1.5 하나의 로직, 다양한 결과물 
___1.5.1 사례 1: R + 마크다운으로 만드는 웹 페이지 
___1.5.2 사례 2: 인터랙션 기능을 가진 표 
___1.5.3 사례 3: 웹 프리젠테이션 
___1.5.4 사례 4: slidify로 만드는 웹 프리젠테이션 
___1.5.5 사례 5: 인터랙티브 그래프가 들어간 웹 페이지 
___1.5.6 사례 6: 웹 애플리케이션 
___1.5.7 사례 7: PDF 문서 
___1.5.8 사례 8: PDF 프리젠테이션 
___1.5.9 사례 9: 오피스 문서로 전환 
1.6 다이나믹하게 문서 생성 
1.7 계산 과정의 투명성 
1.8 정리 

2장 필요한 오픈소스 프로그램 설치 
2.1 R 설치와 환경 설정 
___2.1.1 R 스크립트 
___2.1.2 R 그래픽 
___2.1.3 R GUI 재설정 
___2.1.4 패키지 관리 
___2.1.5 R 콘솔 사용법 
___2.1.6 Help 메뉴에 있는 내용들 
___2.1.7 R의 도움말 기능 
___2.1.8 R 세션에 대한 정보 
2.2 R스튜디오 설치 
___2.2.1 R스튜디오 
___2.2.2 R스튜디오의 작업 환경 설정 
2.3 R스튜디오에서 R 코드 실행 
2.4 R스튜디오 소스 편집창 
2.5 R스튜디오에서 니터를 사용하기 위한 설정 
2.6 R스튜디오의 R 패키지 관리와 관련 도움말 
___2.6.1 패키지 관리 
___2.6.2 패키지에 있는 자료 활용 
2.7 프로젝트 생성 후 작업 
___2.7.1 프로젝트의 의미 
2.7.2 R스튜디오 프로젝트 이용 
2.8 깃을 이용한 문서 작업 과정 기록 
___2.8.1 버전 관리 시스템 깃 소개와 설치 
___2.8.2 R스튜디오에서 깃의 사용 
___2.8.3 깃 관련 정보 
2.9 이 책에서 사용된 여러 도구들 
2.10 도구 사용에서 고려할 점 

3장 R 언어의 기초 
3.1 값, 표현식, 기본 데이터 타입, 할당 
3.2 데이터 구조 
___3.2.1 벡터 
___3.2.2 벡터의 부분 집합 추출 
___3.2.3 값의 수정과 삭제 
___3.2.4 정렬 
___3.2.5 데이터 프레임 
___3.2.6 팩터 
___3.2.7 테이블 
___3.2.8 결측값 
___3.2.9 날짜와 시간 
3.3 정리 

4장 R로 데이터 조작 
4.1 정리된 데이터와 정리되지 않은 데이터 
4.2 reshape 패키지를 이용한 데이터셋 폼 변환 
___4.2.1 melt( ) 함수와 cast( ) 함수 
___4.2.2 데이터 정리와 보조 함수 
4.3 plyr 패키지를 사용해 데이터 조작 
___4.3.1 Split하는 방법 
___4.3.2 apply 함수 
___4.3.3 plyr 패키지를 사용한 Split-Apply-Combine 전략 
4.4 두 데이터 프레임의 결합 
4.5 dplyr 패키지 
___4.5.1 큰 데이터를 손쉽게 출력 
___4.5.2 데이터를 다루는 데 기본이 되는 5가지 함수 
___4.5.3 데이터를 조건에 맞게 그룹으로 분할 
___4.5.4 함수들의 체인 
___4.5.5 윈도우 함수들과 다른 기능 

5장 문자와 코드가 결합한 시너지 효과 
5.1 마크다운, R 마크다운, R스튜디오 
5.2 마크다운 문법 
___5.2.1 장절의 구분 
___5.2.2 단락 
___5.2.3 목록 
___5.2.4 의도적인 줄 바꿈 
___5.2.5 강조 
___5.2.6 인용 문단 
___5.2.7 컴퓨터 코드 
___5.2.8 수평선 
___5.2.9 그림 삽입 
___5.2.10 링크 
___5.2.11 수식 
___5.2.12 표 생성 
___5.2.13 하나의 파일에서 HTML과 마크다운을 같이 사용 
5.3 R과 R 마크다운 하이브리드 
5.4 스타일 커스터마이징 
___5.4.1 R스튜디오가 사용하는 디폴트 스타일과 이것을 바꾸는 방법 
___5.4.2 커스터마이징의 중심: markdownToHTML( ) 
___5.4.3 knitrBootstrap 패키지를 이용한 스타일링 
___5.4.4 워드프로세서 파일 등으로 변환 
5.5 프로젝트, 깃의 적극적인 활용 

6장 문자와 코드를 엮는 뜨개질: 니터 패키지 
6.1 청크 옵션을 설정하는 일반적인 방법 
6.2 cache, eval, include, label 옵션 
___6.2.1 이전에 수행한 계산을 다시 하지 않게 하기: cache 
___6.2.2 코드 청크를 실행시킬지 여부: eval 
___6.2.3 다음 단계로 코드 청크의 결과를 보낼지 여부 결정: include 
___6.2.4 코드 청크 이름: label 
6.3 코드 청크의 출력물과 옵션 
___6.3.1 소스코드 옵션 
___6.3.2 소스코드를 출력할지 결정: echo-logical이나 numeric 
___6.3.3 출력하는 코드를 보기 좋게 할 방법 결정 
6.4 코드 청크의 텍스트 출력을 조절하는 옵션 
___6.4.1 출력물 앞에 주석 기호를 붙일지 여부: comment 
___6.4.2 결과 텍스트를 보낼 방법 결정: results 
___6.4.3 message, warning, error 출력을 조절하는 옵션 
6.5 표 만드는 법 
___6.5.1 정적인 표 
___6.5.2 동적인 표 
6.6 옵션들을 묶어서 관리 
___6.6.1 opts_chunk 객체에 글로벌 옵션 설정 
___6.6.2 opts_template 객체 사용 
6.7 니터 패키지 옵션 
6.8 훅을 이용한 커스터마이징 
___6.8.1 훅을 저장하는 객체 
6.8.2 청크 훅 

7장 그래프 
7.1 R 그래픽 
___7.1.1 R 그래픽의 개요 
___7.1.2 그래픽 디바이스, 전통적 그래픽, 그리드 그래픽 
7.2 그래프의 생성과 출력 과정 
___7.2.1 코드 청크에 의한 그래프의 생성 
7.3 그래프의 생성과 저장을 조절하는 옵션 
___7.3.1 저장소의 지정: fig.path-character 
___7.3.2 그래픽 디바이스 설정: dev-character 
___7.3.3 그래프의 크기 조절 
___7.3.4 그래픽 디바이스를 기준으로 크기 결정 
___7.3.5 출력물을 기준으로 그래프 크기 결정 
___7.3.6 한 코드 청크에서 여러 그래프를 저장하는 방법 
___7.3.7 복수의 그래프에 다른 옵션 값 설정 
7.4 그래프의 배치를 조절하는 옵션 
___7.4.1 좌우 정렬 
___7.4.2 코드와 그래프의 상대적 위치 
___7.4.3 복수의 그래프 레이아웃 설정 
___7.4.4 gridExtra 패키지를 이용한 그리프 그래프 레이아웃 설정 
7.5 캡션과 레이블 
7.6 그래프에 한글 삽입 
___7.6.1 일반적인 R 콘솔에서 한글이 포함된 그래프 
___7.6.2 extrafont 패키지 
___7.6.3 니터 방식에서의 그래프 한글 식자 

8장 참고문헌 관리 
8.1 참고문헌 관리의 개요 
8.2 빕텍과 R 
8.3 R 패키지에 대한 bibentry 
8.4 빕텍 데이터베이스를 만드는 다양한 방법 
___8.4.1 knitcitations 패키지로 doi를 이용해 서지 정보 읽기 
8.5 자료에 참고문헌 정보 삽입 
___8.5.1 R + 마크다운 하이브리드 방법에서 참고문헌 삽입 

9장 오피스 프로그램과 함께 사용 
9.1 엑셀과 R 
___9.1.1 엑셀로 데이터를 정리할 때 주의할 점 
___9.1.2 CSV 파일을 이용해 엑셀 데이터 읽기 
___9.1.3 XLConnect 패키지 사용 
___9.1.4 XLConnect 패키지에서 사용되는 개념 
___9.1.5 엑셀 자료 읽기 
___9.1.6 워크북을 만들지 않고 직접 워크시트 읽기 
___9.1.7 R 객체를 엑셀 파일로 저장 
___9.1.8 이름 상자에 그래프 삽입 
9.2 워드프로세서에서 읽을 수 있는 포맷으로 변환 
___9.2.1 팬독으로 md 파일로 docx 파일 생성 
9.3 옵션: R + 팬독 하이브리드로 만드는 워드프로세서 파일 
___9.3.1 기본 개념 
___9.3.2 니터 패키지의 pandoc( ) 함수 
___9.3.3 R + 팬독 하이브리드로 문서 제작 
___9.3.4 두 번째 예제 
___9.3.5 pandoc( ) 함수의 config 옵션과 Pandoc 옵션을 지정하는 방법 
9.4 제대로 변환되지 을 때 고려할 사항 
___9.4.1 마크다운 파일을 팬독을 사용해 다른 파일로 변환할 때 표 문제 
___9.4.2 그래프 

10장 웹 프리젠테이션과 다이나믹 그래프 
10.1 웹 프리젠테이션 만들기: slidify 패키지 
___10.1.1 slidify 패키지의 설치와 로딩 
___10.1.2 웹 프리젠테이션 기본 골격 제작 
___10.1.3 index.Rmd 편집 방법 
___10.1.4 slidify 패키지의 원리 
___10.1.5 template 
___10.1.6 데이터 
___10.1.7 YAML 형식의 역할 
___10.1.8 템플릿과 데이터, 결합 
___10.1.9 slidify에 사용되는 웹 프리젠테이션 프레임워크 
10.2 레이아웃 
___10.2.1 레이아웃 정의 파일 
___10.2.2 특정 레이아웃 선택 
___10.2.3 사용자 레이아웃 제작 
___10.2.4 레이아웃 블록과 인헤리턴스 
___10.2.5 slidify를 이용해 일반적인 웹 페이지 제작 
10.3 다이나믹 그래프: rCharts 패키지 
___10.3.1 데이터 비쥬얼리제이션을 위한 자바스크립트 라이브러리 
___10.3.2 일반 웹 페이지에 rCharts를 사용해 인터랙티브 그래프 제작 
___10.3.3 웹 프리젠테이션에 인터랙티브 그래프 삽입 
___10.3.4 rCharts 패키지 
10.4 R스튜디오로 만드는 웹 프리젠테이션 
___10.4.1 시작 
___10.4.2 슬라이드 만들기와 내용 입력 
___10.4.3 화면 전환 등 프리젠테이션 효과 반영 
___10.4.4 프리젠테이션 실행 
___10.4.5 프리젠테이션 테마 설정 
___10.4.6 R 프리젠테이션에 인터랙티브 그래프 삽입 

11장 웹 애플리케이션으로 소통 
11.1 기본 폴더 구조와 앱의 실행, Shiny 앱의 작동 방식 
11.2 ui.R과 server.R의 기본 틀 
___11.2.1 ui.R의 기본 틀 
___11.2.2 server.R의 기본 틀 
11.3 shiny 애플리케이션의 개괄적 이해 
11.4 반응성 프로그램의 기초: Reactivity 
11.5 사용자 인터페이스 
___11.5.1 입력: sidebarPanel( ) 
___11.5.2 결과 출력: mainPanel( ) 
11.6 반응성 다시 보기 
___11.6.1 객체의 사용 범위 
___11.6.2 반응성 표현식 
___11.6.3 반응성 프로그래밍 모델 
___11.6.4 반응성의 조절 
11.7 DataTables 라이브러리를 사용해 데이터 출력 
11.8 주의할 점 
11.9 일반적인 HTML로 shiny 인터페이스 생성 
11.10 slidify와 rCharts를 같이 사용 
___11.10.1 slidify 결과물에 shiny 애플리케이션 추가 
___11.10.2 slidify 웹 프리젠테이션에 shiny 앱 추가 
___11.10.3 rCharts를 포함하는 shiny 앱 생성 
11.11 정리 

12장 장롱 속 오래된 진주, 레이텍 마크업 
12.1 레이텍의 소개와 설치 
12.2 레이텍 처음 사용 
___12.2.1 처음 사용자에게 유용한 문서 
___12.2.2 문서 제작 
12.3 레이텍의 기본 
___12.3.1 레이텍 명령어 
___12.3.2 문서의 기본 골격 
___12.3.3 제목, 저자명, 날짜 지정과 출력 
___12.3.4 패키지 사용: \usepackage 명령 
___12.3.5 장절의 구분 
___12.3.6 차례 
___12.3.7 공백의 처리 
12.3.8 단락 
___12.3.9 강제 줄바꿈 
___12.3.10 특별한 문자 
___12.3.11 주석 
___12.3.12 페이지 스타일 
12.4 한글 사용과 폰트 
___12.4.1 텍 엔진, 한글 패키지, 시스템 폰트 
___12.4.2 문서에서 폰트를 사용하는 방법 
___12.4.3 폰트 크기 
12.5 상호 참조 시스템: Cross References 
12.6 hyperref 패키지를 사용해 하이퍼링크 강화 
12.7 정리 

13장 레이텍 마크업과 R 코드 결합 
13.1 R + 레이텍 하이브리드 작업 환경 설정 
13.2 R + 레이텍 하이브리드 방법에 의한 문서 생성 과정 
13.3 R + 레이텍 하이브리드에서의 표 제작 
___13.3.1 레이텍에서의 표 8
___13.3.2 R + 레이텍 하이브리드 방법에서 표 제작 
13.4 R + 레이텍 하이브리드 방법에서의 그래프 

14장 PDF 포맷으로 된 프리젠테이션 제작 
14.1 beamer PDF 프리젠테이션 제작 
14.2 프레임 환경 
___14.2.1 프레임의 제목과 부제목 
___14.2.2 프레임 환경의 옵션 
___14.2.3 하나의 프레임 안에 두 개 이상의 열 배치 
14.3 프리젠테이션의 동적인 효과: 오버레이 
___14.3.1 오버레이 명세 
___14.3.2 \pause 명령 사용 
___14.3.3 세밀한 오버레이 명세 조정 
14.4 beamer 테마 
___14.4.1 테마 정하기 예제 
14.5 beamer에서의 R + 레이텍 하이브리드
부록 참고문헌

New Arrivals Books in Related Fields

Ramamurthy, Bina (2021)
윤관식 (2020)