엑셀 파일 불러오기와 저장하기(xls, xlsx)
R로 데이터 처리할 시에는 직접 데이터를 입력하는 것보다 외부 파일을 불러오는 경우가 훨씬 많습니다. 보통 데이터는 엑셀 형식이나 텍스트 파일 형식으로 많이 저장이 됩니다. 일단 파일을 불러와야 뭘 어떻게든 해볼 수 있기 때문에 꼭 알고 있어야 하는 내용입니다.
1. 엑셀 파일 불러오기
1.1. readxl 패키지 - read_excel
readxl 패키지를 설치 후 read_excel 이라는 함수를 이용하면 손쉽게 파일을 불러올 수 있습니다.
read_excel 함수는 확장자가 xlsx 또는 xls 인 엑셀 파일 형식을 불러옵니다.
read_xlsx 및 read_xls 함수를 직접 이용해도 사용 방법은 동일합니다.
경로명 지정시에는 getwd() 함수를 확인하여 기본 작업 폴더가 어디로 설정되어 있는지 확인합니다.
만약 현재 지정된 폴더에 엑셀 파일이 있으면 파일 이름만 적어도 됩니다.
하지만 다른 폴더에 엑셀 파일이 있으면 정확한 경로명을 써야 합니다.
(예시: c:/test/documents/파일이름.xlsx)
read_excel(path, #경로명
sheet, #시트명
range, #범위
먼저 아래와 같은 간단한 엑셀 파일을 만듭니다.
파일명은 'xlsx 실습' 으로 저장합니다.
> install.packages("readxl") > library(readxl) > read_excel("xlsx 실습.xlsx") # 기본경로에 파일이 있으면 전체 경로명을 쓰지 않아도 됨 var1 var2 1 1 3 2 2 4 |
1.2. 시트 별로 데이터 불러오기
첫번째 시트와 두번째 시트에 아래와 같은 엑셀파일이 있습니다.
첫번째 시트 이름은 'first' 이며 두번째 시트 이름은 'second'입니다.
read_excel 함수의 sheet 인자에 시트명을 쓰면 해당 데이터를 불러옵니다.
> data1 <- read_excel("xlsx 실습.xlsx", sheet = 'first') > data1 var1 var2 1 1 3 2 2 4 > data2 <- read_excel("xlsx 실습.xlsx", sheet = 'second') > data2 var3 var4 1 11 33 2 22 44 |
1.3. 일부 데이터만 불러오기
아래 그림은 시트명이 third인 자료를 추가한 것입니다.
이때 third 시트에서 2번째에서 5번째에 있는 데이터만 추출하고 싶다면 range 인자를 이용합니다.
range 인자에 3행부터 7행까지만 불러올 수 있는 범위를 설정합니다.
range 인자의 지정방식을 살펴보면 3개 정도로 요약될 수 있을 것 같습니다.
아래 방법은 모든 같은 결과가 나옵니다.
(1) cell_rows를 통해 3행부터 7행까지 불러옴
-> cell_rows(3:7)
(2) 셀지정 방식
위의 노란색 부분은 A3:B7까지의 부분입니다.
-> A3:B7
(3) 행과 열을 명시적으로 지정
-> R3C1:R7C2
> # cell_rows를 통한 지정방식 > read_excel('xlsx 실습.xlsx', range=cell_rows(3:7), # 3행부터 7행까지 sheet='third', # third 시트를 불러옴 col_names = c('var5','var6')) # 변수명 설정 > # 셀 지정 방식 > read_excel('xlsx 실습.xlsx', range="A3:B7", # A3:B7 까지(3행~7행) sheet='third', col_names = c('var5','var6')) > # row - column 지정 방식 > read_excel('xlsx 실습.xlsx', range="R3C1:R7C2", # 3행1열~7행2열 sheet='third', col_names = c('var5','var6')) |
2. 엑셀 파일 저장하기
1.1. openxlsx 패키지 - write.xlsx
R로 작업한 데이터를 엑셀 파일로 저장하기 위해서는 다른 패키지를 설치해야 합니다.
여러 패키지가 있지만 저는 주로 openxlsx 패키지의 write.xlsx 함수를 이용합니다.
openxlsx 패키지에는 read.xlsx 함수가 있어 읽는 것도 가능합니다.
왜 xls 형식으로 저장하는 건 없냐..라고 한다면 xls 파일 형식은 엑셀 구버전(97-2003)에서 사용했던 확장자명입니다.
그러니 데이터를 엑셀 형식으로 저장할 때 xlsx 확장자를 쓰는 것입니다.
R에서 제공하는 mtcars 라는 기본 데이터를 엑셀 형식으로 저장해보도록 하겠습니다.
아래는 mtcars 데이터셋입니다.
이 데이터를 엑셀로 저장합니다.
1.2. write.xlsx 용법
write.xlsx(x, # R 데이터셋
file, # xlsx file name)
rowNames, # 저장시 row 명 포함 여부(TRUE or FALSE)
> install.packages('openxlsx') # 패키지 설치 > library(openxlsx) # 패키지 불러오기 > read.xlsx( x = mtcars, # R data object file = "mtcars데이터셋.xlsx", # path and file name to save R Object for Excel format. rowNames = TRUE # TRUE : row names are written, # FALSE: row names are NOT written |
'데이터 분석 > R 데이터 처리 & 분석' 카테고리의 다른 글
[R] get 함수로 문자를 변수로 인식시키기 (0) | 2021.06.07 |
---|---|
[R] assign 함수 이용하여 값을 변수에 넣기 (1) | 2021.06.04 |
[R] 반복문 사용하기 (for, while, break, next) (0) | 2020.10.27 |
[R] 벡터 생성과 인덱싱(Indexing) 및 추출 (0) | 2020.10.06 |
[R] tidyr 패키지를 이용한 데이터 재구조(pivot_longer, pivot_wider) (0) | 2020.10.02 |