한국청소년정책연구원 도서관

로그인

한국청소년정책연구원 도서관

자료검색

  1. 메인
  2. 자료검색
  3. 통합검색

통합검색

단행본

빅데이터 분석 도구 R 프로그래밍: 데이터 고급 분석과 통계 프로그래밍을 위한

발행사항
서울: 에이콘, 2012
형태사항
497 p: 삽도, 26cm
소장정보
위치등록번호청구기호 / 출력상태반납예정일
이용 가능 (1)
한국청소년정책연구원00026454대출가능-
이용 가능 (1)
  • 등록번호
    00026454
    상태/반납예정일
    대출가능
    -
    위치/청구기호(출력)
    한국청소년정책연구원
책 소개
데이터를 길들여라!

R은 통계 소프트웨어 개발용으로 쓰이는 세계에서 가장 유명한 언어다. 고대 문명의 확산 경향을 추적하는 고고학자, 어떤 약이 안전하고 효과적인지 찾아내는 제약사 등 모두 R을 사용한다. 자산 리스크를 평가하고 시장에서의 변동률을 안정성 있게 유지하려는 보험 설계사 또한 R을 사용한다.

『빅데이터 분석 도구 R 프로그래밍』에서는 R을 사용한 소프트웨어 개발에 대해 기본적인 유형 및 데이터 구조부터 클로저, 재귀, 무기명 함수 같은 어려운 주제까지 모두 다룬다. 통계적 지식은 전혀 필요하지 않으며, 프로그래밍에 대해서도 초보자든 프로든 상관없다.

이 책에서 설명하는 내용을 그대로 따라가다 보면, 함수형 프로그래밍과 객체지향 프로그래밍, 수학적 시뮬레이션, 복잡한 데이터를 보다 단순하고 유용한 형태로 재배치하는 법까지 모두 배울 수 있을 것이다.

비행기를 설계하거나 날씨를 예측하거나, 혹은 간단히 데이터를 길들이는 등 수많은 분야에서 『빅데이터 분석 도구 R 프로그래밍』은 통계 컴퓨팅의 능력을 활용할 수 있는 진정한 가이드가 되어줄 것이다.

★ 이 책에서 다루는 내용 ★

■ 복잡한 데이터 세트와 함수를 시각화하는 예술적인 그래프 만들기
■ 병렬 R과 벡터화를 통한 좀더 효율적인 코드 작성
■ 코드 속도 및 기능 향상을 위한 R과 C/C++, 파이썬과의 인터페이스
■ 텍스트 분석, 이미지 수정 등을 위한 패키지 찾기
■ 개선된 디버깅 기술을 활용해 귀찮은 버그 찾아 고치기


★ 이 책의 대상 독자 ★

많은 사람이 R을 주로 임시변통으로 사용한다. 히스토그램을 그리거나 회귀분석을 한다든가, 통계 기능 등 다양한 용도로 사용하는 식이다. 그러나 이 책은 R로 소프트웨어를 개발하는 사람들을 위해 기획됐다. 이 책은 전문적인 소프트웨어 개발자부터 대학에서 프로그래밍 수업을 한 번쯤 들어 본 사람까지 모두를 대상으로 한다. 그 중에서도 '특정한 목적을 갖고 R 코드를 작성하려는 사람'이라면 꼭 읽어야 할 책이다. 하지만 어려운 통계학 지식은 그다지 필요하지 않다.

이 책은 다음과 같은 사람들에게 도움이 될 것이다.

■ 병원이나 정부 기관에서 일하면서 정기적으로 통계 보고서를 작성해야 하고 이를 자동화한 프로그램을 개발하려는 분석가
■ 새로이 혹은 기존 방식의 절차를 통합해 통계 방법론을 개발, 이를 코드화해 일반 연구 커뮤니티에서 쓰려는 학계 연구원
■ 마케팅, 소송 지원, 언론, 출판, 그 외 복잡한 데이터를 표현하는 그래픽 코드를 개발해야 하는 관련 전문가
■ 통계 분석이 포함된 프로젝트를 진행하는 소프트웨어 개발 경험이 있는 전문 프로그래머
■ 통계 컴퓨팅 수업을 듣는 학생


★ 이 책의 구성 ★

이 책은 훌륭한 R 패키지들로 가능한 수많은 유형의 통계 방법으로 가득 채운 개론서가 아니다. 프로그래밍에 대한 책으로서 기존의 R 책에서 놓친 프로그래밍 관련 주제를 담았다. 또한 기본적 R 사용에 대한 주제에 대해서도 프로그래밍적 관점으로 접근했다.

이 책에서 다루는 내용은 크게 다음과 같다.

■ 이 책 전반에 '확장 예제' 부분이 등장할 것이다. 이 부분에서는 보통 특정 데이터 기반의 단일 코드 조각이 아닌 완결된, 일반 목적의 함수들을 다룬다. 실제 이런 함수들 중 일부는 매일 하는 R 업무에서 매우 유용하게 사용할 수 있다. 이런 예제들을 익히면서 R이 어떻게 구성돼 동작하는지, 이를 프로그램에 어떻게 추가해 유용하게 사용할 수 있는지도 알아본다. 많은 경우에 '왜 이런 방식으로 사용했을까?' 하는 질문에 대답함으로써 여러 대안도 함께 알아본다.
■ 사용된 예제들은 프로그래머들의 감성에 와 닿는다. 예를 들어 데이터 프레임에 대한 토론에서는 R의 리스트 형식의 데이터 프레임뿐 아니라 이에 대한 프로그래밍 구현 방식에 대해서도 다룬다. R을 다른 언어와 비교하는 부분은 이미 다른 언어를 알고 있는 사람에게는 매우 유용하다.
■ 디버깅은 어떤 언어로 프로그래밍하는 경우라도 매우 중요하다. 대다수 R 책에서는 이를 강조하지 않는다. 이 책에서는 '확장 예제'를 통해 실제 프로그램이 어떻게 디버깅되는지 전반적인 수행 과정을 모두 보여주는 형태로 모두 디버깅 기술에 1개 장을 할애했다.
■ 오늘날은 가정에서도 멀티코어 컴퓨터를 보편적으로 사용하며, GUI 프로그래밍이 과학 응용 컴퓨팅 분야에서 조용한 혁명을 일으키고 있다. R 애플리케이션이 증가함에 따라 계산량도 매우 많아졌고, 병렬 프로세싱은 R 프로그래머 사이에서 화두로 떠올랐다. 이에 따라 기술만이 아닌 확장을 주제로 장 하나를 할애했다.
■ R의 내부 구조에 대한 지식이 어떤 도움이 되는지와 R 코드의 수행 속도 향상 기능에 대해서도 각각 한 단원씩을 할애했다.
■ R에서 C나 파이썬 등의 언어로 인터페이스하는 방법에 대해서도 다룬다. 이 장 역시 디버깅 팁을 제공하는 확장 예제를 함께 수록했다.

★ 저자 서문 ★

나는 조금은 평범하지 않은 과정을 통해 R 사용자가 됐다.

추상 확률 이론에 대한 논문을 썼고, 사회생활 초반에는 통계 교수로 몇 년을 지냈다. 가르치고, 연구하고, 통계 방법론에 대해 컨설팅하는 일이었다. UCD에서 통계학과를 만든 12명 정도 되는 교수 가운데 한 명이었다.

몇 년 후 나는 같은 학교의 전산학과로 옮겼고, 이후 많은 시간을 이 곳에서 병렬 프로그래밍, 웹 트래픽, 데이터 마이닝, 디스크 시스템 성능 등 다양한 분야를 연구하며 보냈다. 나의 전산 교육과 연구는 대부분 통계를 포함한다.

이런 많은 경험을 거쳐 나는 '하드코어'한 전산학자이며 통계학자이자 통계 연구원으로서 다양한 관점을 모두 지니게 됐다. 나의 많은 경험이 이 책의 부족함을 보충하고 독자들에게 더 큰 가치를 줄 수 있기를 바란다.

★ 옮긴이의 말 ★

'빅데이터'가 시대의 화두가 되면서, 이전에는 '그들만의 리그'라고 여겨졌던 '데이터 분석'에 대한 관심 역시 크게 늘어났습니다. 그러면서 자연스럽게 데이터 분석이 특정 사업 분야가 아닌 '데이터 처리-활용 주기'의 일부로 여겨지게 됐고, 이에 따라 전반적으로 데이터 처리에서 활용으로 이어지는 데에 사용되는 데이터 플랫폼 또한 자연스럽게 연결되는 데까지 초점이 맞춰지기 시작했습니다. 따라서 빅데이터 플랫폼으로 각광받는 오픈소스 플랫폼인 하둡(Hadoop)과 기존 분석 도구와의 결합에 대한 관심이 높아졌고, 이에 따라 오픈 소스 통계 언어인 R이 새롭게 각광을 받게 됐습니다.

기존 DB 및 관련 프로그램들만을 다루던 전산 분야의 사람들도 데이터 분석에 대해 관심을 보이고, 분석 분야에도 발을 들이고자 하는 시도가 활발히 이뤄지면서, 자연스럽게 R을 배우고자 하는 사람도 늘었습니다. 또한 기존부터 꾸준히 데이터 분석 업무를 하던 사람들도 그 동안 사용하던 상용 분석 도구인 SAS나 SPSS보다 패키지 업데이트가 빠르고, 다양한 데이터 소스와의 연결이 쉬운 R에 좀더 많은 관심을 갖게 되었습니다. 바야흐로 R이 '데이터 분석'계의 화두로 떠오르게 된 것입니다.

이와 같은 상황에서 데이터 분석을 하고 R을 사용하다 보니, 주변에서 'R을 공부하고 싶다, 방법을 알려달라'라든가 '초보자가 보기 쉬운 R 책을 추천해 달라'라는 이야기를 종종 듣게 됩니다. 하지만 추천도 참 쉽지 않은 것이, R이 '통계 분석'을 주 목적으로 만들어진 '프로그래밍' 언어다 보니 전반적으로 '통계적 지식'과 '전산학적 지식'을 어느 정도 갖춘 상태라고 전제하고 만들어진 책들이 대부분입니다. 심지어 기본 매뉴얼조차 어느 정도 이런 경향이 있습니다. 그러다 보니 보통 R에 관심을 갖게 되는 개발자 혹은 기존 데이터 분석가의 경우 한쪽의 지식만 많이 아는 상태이므로, 어떤 교재, 어떤 방법을 추천해 줘야 할지 어려웠습니다. 게다가 이 양쪽의 지식을 어느 정도 갖춰야 하는지 가늠하는 것 또한 쉽지 않아서 섣불리 어떤 조언을 해 주기가 어려웠습니다.

그런 의미에서 이 책을 접했을 때에 굉장히 반가웠습니다. R이 통계 분석을 위한 응용 언어다 보니까, 일반적으로 통계, 수학 등 어떤 목적에 대해 R을 어떻게 활용할 수 있는지 보여주는 형식의 책이나 매뉴얼이 많았습니다. 하지만 이 책에서는 R을 '프로그래밍 언어'로 보고 이를 어떻게 배울 수 있는지 기초적인 부분부터 고난도의 내용까지 꼼꼼하게 설명합니다. 그렇기 때문에 특히 '전산학적 지식'을 기본적으로 갖춘 사람에게 적합한 책이라고 생각합니다. 저자 역시 전산학을 먼저 시작한 후 통계학으로 넘어가면서 R을 접하게 된 분이어서 그런지 몰라도, R을 프로그래밍 언어 구조를 바탕으로 굉장히 차근차근 설명해줍니다. 통계학적 지식은 예제를 살펴볼 때 외에는 크게 필요하지 않고, 그나마도 쉬운 예제들로 접근하고 있기 때문에 심한 불편함은 겪지 않을 것이라고 생각합니다.

반면, '통계 지식'을 먼저 쌓은 사람에게는 추천하지 않느냐고 하면, 그렇지 않습니다. 기본적으로 책이 쉽게 쓰여 있고, R 프로그래밍에 대해 쉽고 친절하게 설명하기 때문에 타 분석 도구의 GUI에 익숙해져 있던 사람들이 R 프로그래밍을 익히는 데에 큰 도움이 될 수 있다고 봅니다. 이미 R 프로그래밍에 어느 정도 익숙한 사람이라고 하면, R의 구조나 프로그래밍에 대한 참고 자료로 옆에 두고 사용할 수도 있을 것이라고 생각합니다.

R을 실제로 공부하고 사용하는 사람으로서 이 책을 원서로 처음 접했을 때부터 참 좋은 책이라고 생각했고 참고 자료로 충분히 잘 사용할 수 있겠다고 생각했습니다. 때마침 이 책을 번역할 수 있는 기회가 주어져, 번역작업이 쉽지는 않았지만 굉장히 즐거운 시간을 보낼 수 있었습니다. 그만큼 이 책을 본 사람들이 R을 좀더 잘 이해하고 즐겁게 사용할 수 있기를 바랍니다.
목차
1장 시작하기 2장 벡터 3장 행렬과 배열 4장 리스트 5장 데이터 프레임 6장 팩터와 테이블 7장 R 프로그래밍 구조 8장 R에서 수학과 시뮬레이션 하기 9장 객체 지향 프로그래밍 10장 입력과 출력 11장 문자열 처리 12장 그래픽 13장 디버깅 14장 성능 향상: 속도와 메모리 15장 타 언어와 R을 인터페이스하기 16장 병렬 R 부록 AR 설치하기 부록 B 패키지 설치 및 사용