R에서 객체지향 프로그래밍 사용하기 [R 언어 기초부터 객체지향 개념(S3, S4 클래스)과 사례 연구까지]
- 원서명R Object-Oriented Programming (ISBN 9781783986682)
- 지은이켈리 블랙(Kelly Black)
- 옮긴이정사범
- ISBN : 9788960778825
- 20,000원
- 2016년 07월 29일 펴냄 (절판)
- 페이퍼백 | 228쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 데이터 과학
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/r-object-oriented-programming)
요약
이 책은 데이터 분석 언어로 널리 사용되고 있는 R 언어의 능력을 제대로 활용하기 위해 필요한 프로그래밍 기술을 이해하고 학습하는 데 도움을 주기 위한 실용서다. R 언어의 기본 지식을 이해하고 있는 사람이라면 이 책을 통해 본인의 프로그래밍 역량을 객체지향 프로그래밍 관점에서 한 단계 더 업그레이드할 수 있다. R과 객체 지향 프로그래밍에 대해 이해하고, 예제를 통해 R 언어에 적용하는 과정을 학습하여 R 언어로 객체지향 프로그래밍을 설계하고 구현하는 방법을 완전히 이해해보자.
이 책에서 다루는 내용
■ R의 기본적인 데이터 유형 및 구조
■ 일반 업무를 표현하는 데 도움이 되는 기본 명령과 도구들
■ 알고리즘 구현을 위한 R의 기본 제어 구조 사용 방법
■ S3와 S4 클래스의 사용 및 개발
■ S3와 S4 클래스 간의 차이 이해
■ 일반 문제를 해결하기 위한 다양한 아이디어 획득
■ R을 통한 객체지향 프로그래밍의 기본 설계 및 접근법
이 책의 대상 독자
이 책은 프로그래밍에 익숙하고 R 환경에 대한 기본적인 이해를 갖추었으며 R 언어를 사용한 프로그래밍 애플리케이션 구현 방법을 배우고자 하는 사람에게 적합하다. 따라서 여러분이 이미 R 환경을 경험했으며 R의 기본을 이해하고 있다고 가정한다. 이 책은 독자가 소프트웨어 애플리케이션 개발에 익숙하다고 가정하기 때문에 구체적인 접근이나 실행 목적을 가진 광범위한 독자들에게 동기 부여를 하지는 않는다.
이 책의 구성
여러 장에 걸쳐 설명할 내용은 다음과 같다. 처음 세 개의 장은 주로 시스템에 데이터를 불러오는 것과 관련된 기본 요구 사항과 데이터 연관 계산 시 가장 기본적인 업무에 중점을 두고 설명한다. 다음 세 개의 장은 여러 데이터 형식을 다루는 기술을 포함해 데이터를 살펴보거나 데이터로 작업할 때 실제로 발생하는 여러 가지 이슈 사항에 중점을 둔다. 그다음 세 개의 장은 기본 및 고급 프로그래밍 주제를 다룬다. 마지막 세 개의 장은 문제를 해결하는 데 여러 아이디어를 결합하는 방법을 설명하기 위해 좀 더 상세한 예제를 제공한다
1장, ‘데이터 형식’에서는 다양한 데이터 형식에 대해 설명한다. float, double, complex, factors, integer 같은 기본 표현을 포함한다. 또한 대화식 셸(shell)에서 벡터를 입력하는 방법에 대해 예를 들어 설명한다. 가장 기본적인 운영에 대한 설명과 R 셸과 상호작용하는 방법도 설명한다.
2장, ‘데이터 구조화’에서는 R 환경에서 데이터를 조직화하는 방법에 대해 좀 더 상세히 설명한다. 추가적으로 데이터를 접근하는 방법과 다양한 데이터 구조에 대한 기본 연산을 수행하는 방법을 설명한다. 조사 대상인 주요 데이터 구조에는 lists, arrays, tables, data frames가 있다.
3장, ‘데이터 저장과 결과 출력하기’에서는 데이터를 R 환경으로 가져오기 위한 방법에 대해 2장에서 설명한 주제를 기반으로 상세히 살펴본다. 또한 데이터를 저장하는 방법과 결과를 표시하는 방법에 대해서도 설명한다.
4장, ‘확률과 랜덤 숫자 계산하기’에서는 확률에 대한 상세한 연구와 R 언어의 샘플링 특성을 제공한다. R 환경은 데이터 분석 방법에 도움을 주는 다양한 특성을 갖고 있다. 모든 통계분석은 확률에 근거하므로 무시할 수 없는 주제다. 다양한 확률과 샘플링 옵션은 R 언어의 장점 중 하나며 이 장에서는 몇 가지 옵션을 알아본다.
5장, ‘문자와 문자열 연산’에서는 문자열에 대한 조사, 테스트, 연산 수행이 가능한 다양한 옵션을 설명한다. 이러한 주제는 데이터 세트가 일관적이지 않은 경우가 잦아 중요한 주제다. 게다가 파일에서 데이터를 읽는 루틴은 몇 가지 기본 검토를 필요로 한다.
6장, ‘시간 변수의 변환과 정의’에서는 시간 데이터 구조를 상세하게 설명한다. 기본 설명은 1장에서 다루었고 6장에서는 좀 더 상세한 내용을 다룬다. 시간 관련 데이터는 그 수가 점점 많아져 더 이상 무시할 수 없는 중요한 데이터 구조가 되었다.
7장, ‘기본 프로그래밍’에서는 가장 기본적인 흐름 제어와 R 언어의 프로그래밍 특성에 대해 상세히 살펴본다. 또한 조건부 실행과 다양한 반복 구조에 대해 상세 내용을 제공한다. 추가로 프로그램 작성, 실행 및 포맷팅과 연관된 일반적인 주제에 대해서도 설명한다.
8장, ‘S3 클래스’에서는 S3 클래스에 대한 상세 내용을 설명한다. 이 내용은 객체지향 프로그래밍에 대한 첫 번째이자 가장 일반적인 접근법이다. S3 클래스의 사용은 이미 객체지향 프로그래밍에 익숙한 사람들에게는 혼란스러울 수 있다. 하지만 유연성 때문에 S3 클래스는 R에서 객체지향 프로그래밍 접근법으로 가장 유명해졌다.
9장, ‘S4 클래스’에서는 S4 클래스에 대해 상세하게 설명한다. S3 클래스와 비교하면 S4 클래스는 객체지향 프로그래밍에 대한 좀 더 새로운 접근법이다. 이것은 한층 더 구조적인 접근법이기도 하며 객체지향 프로그래밍 관련 경험을 가진 사람들에게 더 익숙하다.
10장, ‘사례연구: 과정 등급’에서는 등급-추적 애플리케이션의 심층적인 사례를 제공한다. 총 세 가지의 사례 중 첫 번째로, 가장 간단한 사례다. 많은 사람들에게 익숙한 내용을 선택했다. ##예제를 제공하는 것이 아니라 등급-추적 애플리케이션의 세 가지 예를 10, 11, 12장을 통해 설명하는 것 같습니다.
11장, ‘사례연구: 시뮬레이션’에서는 몬테카를로 시뮬레이션(Monte-Carlo Simulation)에 근거해 데이터를 생성하는 데 사용되는 애플리케이션 사례를 제공한다. 또한 시뮬레이션을 실행하고 결과를 체계화하며 결과에 대한 기본 분석을 실행하는 데 사용하는 환경을 생성하기 위해 객체지향 접근 방법이 사용되는 방법을 보여준다.
12장, ‘사례연구: 회귀분석’에서는 여러분이 회귀분석을 수행하기 위해 사용할 수 있는 다양한 옵션을 제공하는 애플리케이션 사례를 제공한다. 회귀분석은 다양한 상황에서 발생하는 일반적인 작업이다. 개발된 이 애플리케이션은 객체지향 접근법의 사용을 보여줄 수 있는 방법으로써 연속형과 서수형 데이터를 융통성 있게 처리하는 방법을 보여준다. 여러분은 이 장의 내용을 팩트출판사 홈페이지(https://www.packtpub.com/sites/default/files/downloads/6682OSCaseStudy_Regression.pdf)에서 다운로드할 수 있다.
부록, ‘패키지 관리’에서는 패키지 설치, 갱신, 제거에 대해 간략히 소개한다. 패키지는 R의 분석 능력을 확장하기 위해 추가할 수 있는 라이브러리다. R을 확장하며 다른 라이브러리를 사용할 수 있는 점은 좀 더 강력한 특징에 해당한다.
목차
목차
- 1장. 데이터 형식
- 값 할당
- 작업 영역
- 이산형 데이터 형식
- 정수형
- 논리형
- 문자형
- 팩터
- 연속형 데이터 형식
- 더블
- 복소수
- 특정 데이터 형식
- as와 is 함수에 관한 유의 사항
- 요약
- 2장. 데이터 구조화
- 기초 데이터 구조
- 벡터
- 리스트
- 데이터 프레임
- 테이블
- 행렬과 배열
- 데이터 검열
- 행과 열을 추가하기
- 데이터 구조에 대한 연산
- apply 명령
- apply
- lapply와 sapply
- tapply
- mapply
- 요약
- 기초 데이터 구조
- 3장. 데이터 저장과 결과 출력
- 파일과 폴더 정보
- 데이터 입력
- 명령줄에서 데이터 입력하기
- 파일에서 테이블 읽어오기
- CSV 파일
- 고정 폭 파일
- 결과 출력과 데이터 저장
- 작업 공간 저장
- cat 명령
- 출력, 형식, 붙여넣기 명령
- 기본 입/출력
- 네트워크 옵션
- 소켓 열기
- 기본 소켓 작업
- 요약
- 파일과 폴더 정보
- 4장. 확률과 난수 계산
- 개요
- 분포함수
- 누적분포함수
- 역누적 분포함수
- 의사 난수 생성하기
- 샘플링
- 요약
- 5장. 문자와 문자열 연산
- 기초 문자열 연산
- 여섯 개 중점 작업
- 문자열의 길이를 결정하기
- 부분 문자열의 위치
- 부분 문자열을 추출하거나 변경하기
- 대소문자 변환
- 문자열 나누기
- 일정 형식을 갖춘 문자열 생성
- 정규표현
- 요약
- 6장. 시간 변수의 변환과 정의
- 개요 및 가정
- 문자열을 시간 데이터 형식으로 변환
- 시간 데이터 형식을 문자열로 변환
- 시간 데이터 형식에 대한 연산
- 요약
- 7장. 기본 프로그래밍
- 조건부 실행
- 루프 구조
- for 루프 구조
- while 루프 구조
- repeat 루프 구조
- break와 next문
- 함수
- 함수 정의
- 함수에 대한 인자
- 범위
- 스크립트 실행하기
- 요약
- 8장. S3 클래스
- 클래스와 메소드 정의하기
- 객체와 상속을 정의하기
- 캡슐화
- 최종 유의 사항
- 요약
- 9장. S4 클래스
- Ant 클래스 소개
- S4 클래스 정의
- S4 클래스에 대해 메소드를 정의하기
- 신규 메소드를 정의하기
- 다형성
- 현 메소드 확장하기
- 상속
- 기타 참고 사항
- 요약
- 10장. 사례연구: 과정 등급
- 개요
- 과정(Course) 클래스
- 과정(Course) 클래스의 정의
- 한 개 파일에서 등급을 읽어오기
- 과제 클래스
- 숫자형 등급 클래스
- 문자형 등급 클래스
- 예제: 파일에서 등급을 읽어오기
- 인덱싱 연산 정의하기
- 현존 함수를 재정의하기
- 산술연산 재정의하기
- 요약
- 11장. 사례연구: 시뮬레이션
- 시뮬레이션 클래스
- 몬테카를로 클래스
- 예제
- 요약
- 12장. 사례연구: 회귀분석
- 데이터
- 관련 클래스
- 회귀 클래스
- 데이터 탐색하기
- 요약
- 부록. 패키지 관리
도서 오류 신고
정오표
정오표
2016. 7. 26 수정 사항
[p28. 아래에서 3행]
b[4]
->
bubba[4]
[p28. 아래에서 2행]
b
->
bubba