상세 컨텐츠

본문 제목

[개미의 걸음 ADsP 3과목] 외부데이터 불러오기 및 데이터 입*출력

자격증/ADsP

by IT개미 데이터 2020. 7. 28. 17:17

본문

728x90

csv 데이터 파일 불러오기

작업 디렉토리 지정
setwd( )

+
read.csv( )
  • setwd( )를 사용해 불러올 파일이 있는 폴더를 지정
    → wd는 work directory의 약자
    → setwd("C:/Rwork")
  • setwd()를 통해 지정한 폴더에서 read.csv( )함수를 이용하여 파일을 읽음
    → read.csv(파일이름, header=T)
전체 파일 경로 입력
read.csv( )
  • read.csv( )함수만을 이용해 .csv데이터 읽기
    → read.csv("C:/Rwork/파일이름", header=T)
파일을 불러오는 창에서 파일 선택
file.choose( )
  • read.csv( )함수 안에 file.choose( )함수를 사용
    → read.csv(file.choose( ), header=T)
  • 디렉토리 구분자는 \가 아닌 /나 \\를 사용해야한다.
       → "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

관련글 더보기

댓글 영역