데이터 분석 및 전처리 작업을 시행하다보면 분석 결과를 외부로 반출할 때가 있습니다. 이러한 분석 결과는 마크다운, 대쉬보드 혹은 전처리한 데이터 그자체로 반출합니다. R에서는 데이터를 외부로 저장할 때는 주로 write.*() 함수를 사용합니다.

 

21.1. 테이블 데이터셋 저장, write.table()

더보기

(1) write.table() 함수의 구조와 파라미터

데이터 프레임을 저장하려면 write.table() 함수를 사용하는데, sep 파라미터를 이용해 확장자 형식을 정의할 수 있습니다. write.table() 함수의 구조와 주요 파라미터 형태는 다음과 같습니다. 

write.table(x, file, append, quote, sep, eol, na, row.names, col.names, fileEncoding, ⋅⋅⋅ )
 
파라미터 설명
x   데이터프레임 혹은 행렬 형식
file   저장하려는 경로
append   TRUE면 행 단위 이어쓰기, FALSE면 덮어쓰기
quote   TRUE면 모든 값과 열 이름에 ""로 수식, FALSE면 큰따옴표 생략
sep   구분자 지정
na   결측값의 표기명 설정, 기본값으로 "NA"가 지정됨
row.names   TRUE면 행 인덱스와 함께 저장, FALSE면 저장하지 않음
col.names   TRUE면 열 이름 함께 저장, FALSE면 저장하지 않음
fileEncoding   인코딩 방법 설정

 

(2) 예시

이전 포스트인 <20. 외부 데이터 불러오기>에서 사용했던 asset_status 객체를 txt 형태로 저장하고자 할 때, 코드는 다음과 같습니다. 

write.table(x=asset_status, 
            file="asset_status.tsv",
            sep="\t",
            row.names=FALSE) #행 인덱스 저장 방지

 

 

21.2. 데이터셋을 csv 형식으로 저장, write.csv()

더보기

(1) write.csv() 함수의 구조와 파라미터

write.csv() 함수는 데이을 csv 형식으로 저장하는 함수입니다. write.csv() 함수의 파라미터는 write.table() 함수와 대부분 동일한 구조를 가지고 있으나 디폴트 값이 다르니, 이에 유의해야합니다.

write.csv(x, file, append, quote, sep, eol, na, row.names, col.names, fileEncoding, ⋅⋅⋅ )

 

(2) 예시

이전 포스트인 <20. 외부 데이터 불러오기>에서 사용했던 student_dataset 객체를 csv 형식으로 저장하고자 할 때, 코드는 다음과 같습니다. 

write.csv(x=student_df_01,
          file="student_dataset.csv",
          row.names=FALSE,
          quote=FALSE)

 

21.3. 데이터셋을 xlsx 형식으로 저장, write_xlsx()

더보기

(1) writexl 패키지 설치 및 활성화

xlsx 형식으로 데이터 프레임을 저장하기 위해선 writexl 패키지를 사용합니다. 해당 패키지를 설치하고 활성화하는 방법은 다음과 같습니다. 

install.packages("writexl")
library(writexl)

 

(2) write_xlsx 함수의 구조와 파라미터

write_xlsx 함수의 구조는 다음과 같습니다. 이전 read_xlsx 함수와 구조가 비슷합니다.

write_xlsx(x, path, col_names=TRUE, format_header=TRUE, use_zip64=FALSE, ∙∙∙ )
 
파라미터 설명
x   데이터 집합, 일반적으로 데이터 프레임 형식으로 저장
path   저장할 파일 경로 지정
col_names   열 이름을 사용할지 결정 
format_header   열 이름을 볼드처리 및 중앙에 위치할지를 결정

 

(3) 예시

위의 student_dataset 데이터셋을 예로 들어 .xlsx 형식으로 저장하고자 할 때, 코드는 다음과 같습니다. 

write_xlsx(x=student_df_01,
           path="student_dataset.xlsx",
           col_names=TRUE,
           format_headers=FALSE)

 

PLUS) 문자 제어문(Escape String)

더보기

문자 제어문이란 텍스트에 띄어쓰기, 탭 등을 추가하고자 할 때 사용하는 문법으로, R에서는 cat() 함수나 텍스트 데이터를 전처리할 때 사용합니다. 문자 제어문의 종류는 다음과 같습니다. 

형태 설명
\b backspace   앞의 문자를 생략하고 입력
\t tap   탭 한 번 입력하기
\n new line   한 칸 띄우기
\r carriage returen   동일한 줄의 첫 위치로 이행
 

예를 들어, "DataAnalyticsWithR"이라는 문자열을 예시로 해당 문자 제어문을 사용해보겠습니다.

cat("DataAnalyticsWithR")
cat("Data\bAnalytics\bWith\bR") #\b 사용
cat("Data\tAnalytics\tWith\tR") #\t 사용
cat("Data\nAnalytics\nWith\nR") #\n 사용

출력한 결과는 다음과 같습니다. \b를 사용한 경우 앞의 문자열 "a","s","r"이 삭제되었고, \t을 사용한 경우 앞의 문자열에서 탭됐음을 알 수 있고, \n의 경우는 띄어쓰기가 사용되었음을 확인할 수 있습니다.