자격증/ADsP
[개미의 걸음 ADsP 3과목] 외부데이터 불러오기 및 데이터 입*출력
IT개미 데이터
2020. 7. 28. 17:17
728x90
csv 데이터 파일 불러오기
작업 디렉토리 지정 setwd( ) + read.csv( ) |
|
전체 파일 경로 입력 read.csv( ) |
|
파일을 불러오는 창에서 파일 선택 file.choose( ) |
|
- 디렉토리 구분자는 \가 아닌 /나 \\를 사용해야한다.
→ "C:\Rwork\test.txt" (X)
→ "C:/Rwork/test.txt" (O)
→ "C:\\Rwork\\test.txt" (O) - .csv 데이터 파일을 읽을 때는 주소, 이름, 성 등의 텍스트를 요인으로 인식함
→ read.csv("파일이름", header=T, as.is=T)
→ "header=TRUE"로 두어 파일의 첫줄은 데이터가 아닌 헤더부분으로 인식
.csv 데이터 파일을 읽을 때 한글 깨어짐이 발생할 수 있음
① Rstudio 메뉴에서 [Tools]-[Global Option]-[Code]-[Saving]에서 한글 옵션 설정을 UTF-8로 지정
② Excel에서 파일을 읽은 후 파일포맷을 .csv(UTF-8)로 설정하여 다른 이름으로 저장
③ R에서 파일 읽을 때 encoding옵션 추가
→ read.csv("test.scv", header=TRUE, encoding="utf-8"
csv데이터 파일 저장하기
- .csv 데이터 파일로 출력할 때는 write.csv( )함수를 이용
→ write.csv(행렬 또는 데이터프레임, "파일이름", row.names=T) - .csv 데이터 파일로 출력할 때 1행을 변수명으로 자동생성[col.names=T]
→ 1행이 변수명이 아닐 경우 "wirte.csv(행렬 또는 데이터프레임, "파일이름", col.names=F) - .csv 데이터 파일로 출력할 때 1열에 레코드 번호를 자동생성[row.names=T]
→ 1열에 레코드 번호를 생성하지 않을 경우 "wirte.csv(행렬 또는 데이터프레임, "파일이름", row.names=F)
기타 파일 불러오기
엑셀 파일[xls,xlsx] 불러오기 | 1. 엑셀 파일을 csv파일 형식으로 저장한 뒤 csv파일 불러오기 |
2. RODBC라는 패키지를 사용해 엑셀 파일 불러오기 library(RODBC) xlsfile <- odbcConnectExcel("파일경로") ※ 단, 이때 파일경로에 확장자를 생략하고 작성한다!! myxls <- sqlFetch(xlsfile, "sheet1") close(xlsfile) |
|
txt파일 불러오기 | read.table("파일이름") 'sep=' 옵션 사용 못함 |
고정자리수 데이터 파일 [Fixed-width file] 불러오기 |
read.fwf("파일이름", widths=c(w1, w2,...wn) |
테이블로 된 데이터 파일 불러오기 |
read.table("파일이름", sep="구분자") |
* 주소, 이름, 성 등의 텍스트를 요인으로 인식할 경우 → read.table("파일이름",sep="구분자", stringsASFactor=F) * 결측치를 NA가 아닌 다른 문자열로 표현하고 싶은 경우 → read.table("파일이름",sep="구분자", na.strings="." * 파일의 첫행을 변수명으로 인식하고자 할 경우 → read.table("파일이름", sep="구분자", header=T |
|
웹에서 데이터 파일 불러오기 | read.csv("http://~~~") read.table("http://~~~") |
what=numeric(0) → 토큰을 숫자로 해석 what=integer(0) → 토큰을 정수로 해석 what=complex(0) → 토큰을 복소수로 해석 what=character(0) → 토큰을 문자로 해석 what=logical(0) → 토큰을 논리값으로 해석 |
|
html에서 테이블 불러오기 | library(XML) url<-'http://~~~/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) |
키보드로 데이터 입력
데이터 양이 적을 경우, c( )함수를 활용하여 데이터를 입력
빈 데이터 프레임을 생성한 후, 편집기를 불러와서 편집한 후 데이터 프레임에 덮어 씌울 수 있음
# 파일 목록보기
더보기
list.files( )
list.files(recursive=T, all.files=T)
recursive=TURE로 지정하면 하위 디렉토리까지 모두 확인
list.files( )
list.files(recursive=T, all.files=T)
recursive=TURE로 지정하면 하위 디렉토리까지 모두 확인
728x90