8.3 Excel 파일 입출력
- R에서 기본적으로 제공하는 파일 입출력 함수는 대부분 텍스트 파일(
*.txt
,*.csv
,*.tsv
9)을 대상으로 하고 있음 - readr 패키지에서도 이러한 원칙은 유지됨
- Excel 파일을 R로 읽어오기(과거 방법)
*.xls
또는*.xlsx
파일을 엑셀로 읽은 후 해당 데이터를 위 텍스트 파일 형태로 내보낸 후 해당 파일을 R로 읽어옴- xlsx 패키지 등을 이용해 엑셀 파일을 직접 읽어올 수 있으나, Java 기반으로 개발된 패키지이기 때문에 Java Runtime Environment를 운영체제에 설치해야만 작동
- 최근 tidyverse 중 하나인 readxl 패키지를 이용해 간편하게 R 작업환경에 엑셀 파일을 읽어오는 것이 가능(Hadley Wickham이 개발…)
- tidyverse의 한 부분임에도 불구하고 tidyverse 패키지 번들에는 포함되어 있지 않기 때문에 별도 설치 필요
readxl 패키지 구성 주요 함수
read_xls()
,read_xlsx()
,read_excel
: 엑셀 파일을 읽어오는 함수로 각각 Excel 97 ~ 2003, Excel 2007 이상, 또는 버전 상관 없이 저장된 엑셀 파일에 접근함excel_sheets()
: 엑셀 파일 내 시트 이름 추출 \(\rightarrow\) 한 엑셀 파일의 복수 시트에 데이터가 저장되어 있는 경우 활용- 예시: 2020년 4월 23일 COVID-19 유병률 데이터 (Our World in Data)
read_xlsx(
# Excel 폴더 및 파일 이름
path, sheet = NULL, # 불러올 엑셀 시트 이름
# default = 첫 번째 시트
col_names = TRUE, # read_csv()의 인수와 동일한 형태 입력
col_types = NULL # read_csv()의 인수와 동일한 형태 입력
)
# 2020년 4월 21일자 COVID-19 국가별 유별률 및 사망률 집계 자료
# dataset/owid-covid-data.xlsx 파일 불러오기
# install.packages("readxl")
require(readxl)
필요한 패키지를 로딩중입니다: readxl
<- read_xlsx("dataset/covid-19-dataset/owid-covid-data.xlsx")
covid19 covid19
# 여러 시트를 동시에 불러올 경우
# dataset/datR4CTDA.xlsx 의 모든 시트 불러오기
<- "dataset/datR4CTDA.xlsx"
path <- excel_sheets(path)
sheet_name <- lapply(sheet_name, function(x) read_xlsx(path, sheet = x))
dL names(dL) <- sheet_name
tab separated values↩︎