입력과 출력의 과정
<데이터를 분석하기 위해서는 분석자가 분석을 위해 설계된 방향으로 데이터를 정확하게 입력받아야 함>
↓
<입력된 데이터는 다양한 전처리 작업을 거쳐 분석이 가능한 형태로 재정리 되어야 함 = "데이터 핸들링">
↓
<분석된 결과를 이해하기 쉽고 잘 해석할 수 있도록 생산하는 "데이터 출력" 수행>
↓
<출력된 결과는 보고서의 형태로 정리됨, 통계 분석 과정 종료>
R에서 처리할 수 있는 데이터 타입
SAS / SPSS / Minitab / Stata /
Keyboard / Sockets / Excel / netCDF / HDF5 /
No SQL / MapReduce / Hadoop / Access /
MySQL / MS-SQL / Sybase / DB2 / Oracle /
Webscraping / XML / ASCII
R에서 다룰 수 있는 파일 타입
Tab-delimited text / Comma-separated text / Excel file / JSON file /
HTML file / XML file / Database /
Statistical SW's file
기능 | R 코드 | 비고 |
키보드로 데이터를 입력 | (1) 데이터 양이 적어 직접 입력할 시, c() (2) 데이터 편집기를 활용할 시, 빈데이터 프레임을 생성하고 편집기를 불러와서 편집하고 데이터 프레임을 씌우기 |
|
출력할 내용의 자리수 정의 |
R의 부동소수점 표현 : 7자리로표현 print(pi,digits=num) cat(format(pi,digits=num),"\n") options(digits=num) |
![]() |
파일에 출력하기 | cat("출력할 내용",변수,"\n",file="파일이름",append=T) sink("파일이름") ...출력할 내용... sink() |
|
파일 목록 보기 | list.files(), list.files(recursive=T,all.files=T) |
![]() |
Cannot Open File (파일을 열 수 없음) 해결하기 |
파일 위치 : c:\data\sample.txt R에서는 c:datasample.txt |
역슬래쉬를 슬래쉬로 바꾼다 c:/data/sample.txt 역슬래쉬를 쌍으로 표현한다 c:\\data\\sample.txt |
고정자리수 데이터 파일 (fixed-width file) 읽기 |
read.fwf("파일이름",widths=c(w1,w2,...,wn)) | |
테이블로 된 데이터 파일 읽기 (변수 구분자 포함) |
read.table("파일이름",sep="구분자") | *주의1 : 주소, 이름, 성 등의 텍스트를 요인으로 인식함 해결법1 : read.table("파일이름",sep="구분자",stringsASFactor=F) *주의2 : 결측치를 NA가 아닌 다른 문자열로 표현할 때(SAS.) 해결법2 : read.table("파일이름",sep="구분자",na.strings=".") *주의3 : 파일의 첫행을 변수명으로 인식하고자 할 때 해결법3 : read.table("파일이름",sep="구분자",header=T) |
CSV 데이터 파일 읽기 (변수 구분자는 쉼표) |
read.csv("파일이름",header=T) *CSV (Comma Separated Value) -쉼표를 기준으로 항목을 구분하여 저장한 데이터- |
*주의1 : 주소, 이름, 성 등의 텍슽스트를요인으로 인식함 해결법1 : read.csv("파일이름",header=T,as.is=T) |
CSV 데이터 파일로 출력 (변수 구분자는 쉼표) |
write.csv(행렬 또는 데이터프레임,"파일이름",row.names=F) | *주의1 : 1행이 변수명으로 자동 인식하지만 변수명이 아닐 경우 해결법1 : write.csv(dfm,"파일이름",col.names=F) *주의2 : 1열에 레코드 번호를 자동 생성하지만 레코드 번호를 생성하지 않을 경우 해결법2 : write.csv(dfm,"파일이름",row.names=F) |
웹에서 데잍이터 파일을 읽어 올 때 (변수 구분자는 쉼표) |
read.csv("http://www.koreaadventureguy.com/download/data.csv") read.table("http://www.koreaadventureguy.com/download/data.txt") |
what=numeric(0) 토큰을 숫자로 해석 what=integer(0) 토큰을 정수로 해석 what=complex(0) 토큰을 복소수로 해석 what=character(0) 토큰을 문자로 해석 what=logical(0) 토큰을 논리값으로 해석 |
html에서 테이블 읽어 올 때 |
library(XML) url<-'http://www.koreaadventureguy.com/data/table.html't<-readHTMLTable(url) | |
복잡한 구조의 파일 (웹 테이블) 읽기 |
*lines<-readLines("a.txt",n=num) *token<-scan("a.txt",what=numeric(0)) *token<-scan("a.txt",what=list(v1 =character(0),v2=numeric(0)) *token<-scan("a.txt",what=list(v1=character(0), v2=numeric(0),n=num,nlines=num,skip=num,na.strings=list) |