2. 데이터 취득 및 정제 > 2-1. 데이터 불러오고 저장하기
데이터 불러오고 저장하기
실제 프로젝트를 진행하다 보면 외부에서 데이터를 불러오는 경우가 많습니다. 이번 장에서는 일반 텍스트, 엑셀, csv 등의 다양한 파일로부터 데이터를 읽어내는 방법을 살펴보고, R에서 작업한 데이터를 저장하는 방법 또한 살펴보겠습니다.
본격적으로 작업하기 앞서, R 스튜디오의 작업 디렉토리를 지정하겠습니다. 작업 디렉토리는 프로그램이나 데이터 파일을 불러오거나 저장할 때 작업이 이뤄지는 폴더를 의미합니다. R 스튜디오의 작업 디렉토리 기본값은 C:/Users/사용자명/Documents
입니다.
getwd()
: 현재 작업 중인 디렉토리를 알려준다.
setwd()
: 일시적으로 자신이 원하는 곳으로 디렉토리를 변경한다.
getwd()
> "C:/Users/사용자명/Documents"
# 본인이 희망하는 디렉토리로 변경
setwd('C:/Users/사용자명/Documents/R') # 예시 1
setwd('C:/Users/사용자명/Desktop/R') # 예시 2
R 스튜디오 재실행 시 작업 디렉토리가 기본값으로 돌아오기 때문에, 특정 폴더(디렉토리)를 원하는 경우 따로 지정을 해줘야 합니다.
작업 디렉토리 유지하는 방법
[Tools] → [Global Options] → [General] → Default working directory → 원하는 디렉토리 입력
💡 라이브러리(library) = 패키지(package)
- 라이브러리: 특정 분야를 위해 개발된 R 함수를 모아둔 소프트웨어 = 패키지
- 유사한 기능을 가진 함수들을 묶음 함수 꾸러미이다.
- R이 강력하고 널리 쓰이는 이유는 라이브러리가 방대하기 때문이다.
- 라이브러리 설치
- 명령어
install.packages('패키지명')
실행- 파일 창의 Packages 칸에서 install 버튼 클릭
- 라이브러리 로딩
- 명령어
library(패키지명)
실행- 파일 창 Packages 칸에서 네모 박스(□) 체크
- 기본 라이브러리 외에는 R 스튜디오를 시작할 때마다 매번 로딩해야 된다.
serach()
: 부착된 라이브러리 목록 확인
우선 한글 인코딩 문제를 해결하고 가겠습니다. 한글 인코딩이란 '어떻게 한글(문자)을 숫자로 바꾸어 컴퓨터에 저장할 것인가?'로, 운영체제마다 인코딩 방식이 다르기 때문에 파일을 불러올 때 문제(글자 깨짐 현상 등)가 발생합니다.
OS | 인코딩 |
---|---|
Window | ECU-KR(ANSI) ▶ CP949 |
Mac / Linux | UTF-8 |
R 스튜디오에서 한글 인코딩 문제를 방지하는 방법들은 다음과 같습니다. 모두 알아두시길 바랍니다.
[Tools] → [Global Options] → [code] > [Default text encoding] → UTF-8
[File] → [Reopen with Encoding] → CP949
함수 사용
read.table('파일명.확장자명', fileEncoding = 'UTF-8')
데이터를 불러오는 방법은 다음과 같습니다.
read.table
: 일반 txt 파일을 읽을 때 사용
header
: 첫 번째 행이 변수명(T)인지 데이터(F)인지 결정한다.coco = read.table('coco.txt', header = T, fileEncoding = 'utf-8')
read.csv
: csv 파일을 읽을 때 사용
coco = read.csv('coco.csv', header = T, sep = ',', fileEncoding = 'utf-8')
R 스튜디오에서 작업한 데이터를 파일로 저장하는 방법은 다음과 같습니다.
write.table
: 일반 txt 파일로 저장할 때 사용
quote = F
: 파일 저장 시, 큰따옴표 없애기row.names = F
: 파일 저장 시, 행 번호 없애기write.table(coco, file = 'C:/Users/사용자명/본인의 작업 디렉토리/파일명.txt', quote = F, row.names = F)
write.csv
: csv 파일로 저장할 때 사용
quote = F
: 파일 저장 시, 큰따옴표 없애기
row.names = F
: 파일 저장 시, 행 번호 없애기
write.table(coco, file = 'C:/Users/사용자명/본인의 작업 디렉토리/파일명.csv', quote = T, row.names = T)
📖 참고하기: R에서 사용가능한 파일 읽기/쓰기 함수
패키지 함수 base 패키지 read.table, read.csv 등 readr 패키지 write_csv, read_csv data.table 패키지 fwrite, fread feather 패키지 write_feather, read_feather