1. R 소개
R : 통계, 데이터마이닝, 그래프를 위한 오픈소스 프로그램
SAS, SPSS | R | |
비용 | 비쌈 | 무료 |
설치용량 | 대용량 | 모듈화 (간단) |
모듈지원 | 별도 구매 | 오픈소스 |
최근 알고리즘/기술 반영 | slow | fast |
학습자료 입수 편의성 | 유료 위주 | 공개 자료 |
질의 공개 커뮤니티 | 없음 | 있음 |
- R 특징
- 오픈소스 프로그램 (커뮤니티, 5000개 패키지 수시 업데이트)
- 그래픽 및 성능 월등
- 시스템 데이터 저장 방식 : 각 세션마다 저장하여 매번 로딩할 필요 X
- 모든 운영체제 사용 가능
- 표준 플랫폼 : S 통계언어 기반(통계전문가들의 표준 플랫폼)
- 객체지향언어 & 함수형 언어
> 객체지향 : 결과값 객체 반환 - 필요한 부분만 추출 가능
> 함수형 : 단축, 수행속도 빠름, 단순 코드로 디버깅 노력 감소, 병렬 프로그래밍 전환 용이
- R Studio
- 오픈소스, 다양 운영체계 지원
- 메모리의 변수, 타입 볼 수 있음 / 스크립트 관리 및 도큐먼테이션 편리
- 래틀(rattle) : GUI가 패키지와 긴밀하게 결합 → 정해진 기능만 사용 가능, 업그레이드 안되면 통합성 문제 발생 - R 기반 작업환경
- 64bit 듀얼코어, 32GB RAM, 2TB 디스크, 리눅스 운영체제 추천
- 64bit 유닉스 : 메모리 무제한 / x86 64bit : 128TB 지원 / 64bit 윈도우 : 8TB 지원
2. R 기초
- R 화면 구성
- 스크립트 : R 명령어 입력
- 워크스페이스 : 할당된 변수, 데이터 나타남
- 콘솔 : 명령문 실행, 설치된 패키지, plot, help 보여주는 창 - 환경 설정 기능
- 작업환경 설정 : dir.create("...") / setwd("...") / getwd()
- 도움말 : RSiteSearch("함수명")
- 패키지 도움말 : library(help=패키지명) / help(package=패키지명)
- 히스토리 기능 : history() / savehistory(file="..") / loadhistory(file="..")
- 프로그램 파일 실행 : source("파일명")으로 스크립트 파일 실행
- 출력 방향을 특정 파일로 지정 : sink("")
- 그래픽 출력 pdf 파일로 지정 : pdf(".pdf") / dev.off()로 파일 닫기
- 배치모드기능 : 매일 돌아가야하는 시스템에서 프로세스 자동화 시 유용 (윈도우 도스창에서 $R CMD BATCH batch.R 실행) - 변수 처리 기능
- 출력 : print() - 하나의 객체만 / cat() - 여러 항목 묶어서 출력
- 값 할당 : <-, <<-, =, ->
- 변수 목록 : ls(), ls.str()
- 변수 삭제 : rm()
- expr : 지역변수(함수 종료 시 삭제됨, <<-로 전역변수로 바꿀 수 있음)
- 수열 : seq(from=, to=, by=, length.out=)
- 반복 : rep(수열, time=, each=)
- 문자 붙이기 : paste(문자, sep=)
- 문자열 추출 : substr(문자열, 시작점, 끝점)
- %/% : 나눗셈 몫 , %% : 나눗셈 나머지, %*% : 행렬 곱
- mean(), median(), sd(), var(), cov(), cor()
3. 입력과 출력
- 데이터 분석과정
- 분석 목적 맞는 적절 분석 방법론 선택 → 정확 분석 통해 얻은 결과를 통찰력 가지고 해석 → 분석 과정 종료
- 데이터 핸들링 : 다양한 전처리 작업 거쳐 분석 가능 형태로 재정리
- 데이터 출력 : 분석 결과 이해하기 쉽고 잘 해석할 수 있도록 생산 - R에서의 데이터 입출력
- Unix 개발자들의 모듈화된 도구(작고 한가지만 잘하는 컴포넌트를 개발하자)라는 개념에서 만들어짐
- 통계연산, 그래픽처리를 할 수 있는 구조로 (전문적 전처리는 perl, ruby, python 이용) - R에서 다룰 수 있는 파일 타입
- tab-delimited text, comma-separated text, excel file, json file, html/xml file, database, ... - Import/Export
- 출력 자리수 정의 : print(, digits=), cat(format(,digits=),"\n"), options(digits=num)
- 파일에 출력 : cat("출력내용", 변수, "\n", file="파일이름", append=T)
- 파일목록보기 : list.files(recursive=T, all.files=T)
- 고정자리수 데이터 파일(fixed-width-file) : read.fwf("파일명", widths=c(...))
- html 파일 : library(XML), readHTMLTable(url)
- 웹테이블 : readLines(".txt", n=num), scan(".txt", what=토큰을 어떤 걸로 해석할지)
4. 데이터 구조와 data frame
- data frame 처리
- data frame 생성 : data.frame(벡터, 벡터, ...)
- 레코드 생성 : record <- data.frame(a=1, b=2, c=3, d="4")
- 행결합 : rbind(df1, df2)
- 열결합 : cbind(df1, df2)
- 조회 : df[df$col="hi"]; subset(df, select=col, subset=col>조건)
- 병합 : merge(df1, df2, by=colname공통인거)
- 열이름 : colnames(df)
- 열제거 : subset(df, select=-"열이름")
- 결측치 제거 : na.omit(df)
- 데이터프레임 접근 : with(df, expr), attach(df), detach(df) - 자료형 변환
- as.character(); as.complex(); as.numeric(); as.double(); as.integer(); as.logical()
- as.data.frame(); as.list(); as.matrix(); as.vector() - 벡터 기본 연산
- sapply(변수, 연산함수)
- 파일 저장 : write.csv(변수명, "파일명"); save(변수명, file="파일명.Rdata")
- 파일 읽기 : read.csv("파일명"); load("파일명.R")
- 변수 삭제 : rm(변수); rm(list=ls(all=TRUE))
5. 데이터 변형
- 벡터 여러 집단으로 분할 : split(), unstack()
- lapply : 결과 리스트로 반환 / sapply : 결과 벡터, 행렬로 반환
- apply(mat, 1, func)
- tapply(vec, factor, func) / by(dfm, factor, func)
- mapply(factor, vec1, ...)
출처 : ADsP 데이터 분석 준전문가 (윤종식 저)
반응형
'DATA SCIENCE > ADSP' 카테고리의 다른 글
[ADsP] 3-4. 통계 분석 (1) 통계 분석의 이해 (0) | 2020.06.06 |
---|---|
[ADsP] 3-3. 데이터 마트 (0) | 2020.06.06 |
[ADsP] 3-1. 데이터 분석 개요 (0) | 2020.06.06 |
[ADsP] 2-2. 분석 마스터 플랜 (2) 분석 거버넌스 체계 수립 (0) | 2020.06.06 |
[ADsP] 2-2. 분석 마스터 플랜 (1) 마스터 플랜 수립 framework (0) | 2020.06.06 |