Day 20. R 프로그래밍; 입력(Import)과 출력(Export)
본문 바로가기

카테고리 없음

Day 20. R 프로그래밍; 입력(Import)과 출력(Export)

입력과 출력의 과정

<데이터를 분석하기 위해서는 분석자가 분석을 위해 설계된 방향으로 데이터를 정확하게 입력받아야 함>

<입력된 데이터는 다양한 전처리 작업을 거쳐 분석이 가능한 형태로 재정리 되어야 함 = "데이터 핸들링">

<분석된 결과를 이해하기 쉽고 잘 해석할 수 있도록 생산하는 "데이터 출력" 수행>

<출력된 결과는 보고서의 형태로 정리됨, 통계 분석 과정 종료>

 


 

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)