본문 바로가기
  • "You can't manage what you can't measure" Peter Drucker
데이터 분석 (with Rstudio)

Rstudio 엑셀 파일 불러오기/저장하기

by Vitaminymc 2023. 7. 26.
반응형

엑셀 파일 불어오기 전, 확인사항

1. 엑셀 파일 상태

MS 엑셀에서 작업 중인 엑셀 파일은 R에서 불러 올 수 없으므로, 작업을 종료한 후에 불러와야 합니다.

2. 엑셀 파일 폴더

엑셀 파일이 작업 디렉터리에 있어야, 불러 올 수 있습니다.  getwd()와 setwd()를 사용하여, 작업 디텍토리를 설정합니다.

[참고]  [R studio] 작업 디렉터리 (디렉토리, 폴더) 확인, 설정 변경 관리 (tistory.com)

 

[R studio] 작업 디렉터리 (디렉토리, 폴더) 확인, 설정 변경 관리

작업 디렉터리 (폴더) 작업 디렉터리 (폴더) : 작업에 사용하고자 (읽거나 쓰고자) 하는 파일이 위치한 디렉터리 (폴더) R에서 어떤 파일을 읽으려면 그 파일이 위치한 디렉터리 (폴더)의 경로와

logistician.tistory.com

3. 엑셀 파일 불러 왔을 때, 한글 깨짐

데이터에 한글이 포함되어 있는 파일을 불러올 때, 한글이 깨져 보이는 경우가 있습니다.

encoding 옵션을 설정하여 불러오면 정상적으로 불러 올 수 있습니다.

encording = "UTF-8" 또는 encording = "CP949"

 

 

엑셀 파일 불어오기/저장하기

openxlsx 패키지 사용 #1

# 패키지 설치
 install.packages('openxlsx')
 
# 패키지 불러오기
 library(openxlsx)

# 분석 결과 데이터프레임 생성
 result <- data.frame (
   english_name = c("Cho", "Park", "Yeon", "Min"),
   korean_name = c("조아라", "박수철", "연민정", "민국한"),
   score = c(90, 85, 92, 97)
 )
 
 # 엑셀 파일 생성 및 데이터 저장
 write.xlsx(result, "output.xlsx", rownames = FALSE)

# 엑셀 파일 불러오기
 check_file <- read.xlsx("output.xlsx")

# 데이터 확인 
 View(check_file)

 head(check_file)

  english_name korean_name score
1          Cho      조아라    90
2         Park      박수철    85
3         Yeon      연민정    92
4          Min      민국한    97

openxlsx 패키지 사용 #2 (특정 시트 불러오기)

library(openxlsx)

# 엑셀 파일 불러오기
 wb <- loadWorkbook("output_multi_sheet.xlsx")
 
 # 특정 시트 불러오기
 data <- read.xlsx(wb, sheet = "Sheet2")
 
 # 엑셀 파일 닫기
rm(wb)

wb는 엑셀 파일을 나타내는 Workbook 객체이며, 더 이상 사용하지 않을 때에는 rm(wb)를 사용하여 할당을 해제할 수 있음
이는 선택 사항이며, R 세션을 종료하면 자동으로 메모리에서 해제됨

 

300x250

readxl 패키지 사용 #1

# 패키지 설치
 install.packages('readxl')
 
# 패키지 불러오기
library(readxl)

# 엑셀 파일 불러오기
check_file <- read_excel ("output.xlsx")

# 데이터 확인 
 View(check_file)

 head(check_file)

  english_name korean_name score
1          Cho      조아라    90
2         Park      박수철    85
3         Yeon      연민정    92
4          Min      민국한    97

readxl 패키지는 R에서 엑셀 파일을 읽어오는 기능만을 제공함
readxl 패키지를 사용하면 엑셀 파일을 R 환경으로 불러올 수 있지만, 엑셀 파일을 저장하는 기능은 제공하지 않음

readxl 패키지 사용 #2  (특정 시트 불러오기)

library(readxl)

# 엑셀 파일의 시트 목록 확인
excel_sheets("output_multi_sheet.xlsx")

[1] "Sheet 1" "Sheet2" 

# 특정 시트 불러오기
data <- read_excel("output_multi_sheet.xlsx", sheet = "Sheet2")

# 데이터 확인 
head(data)
  korean_name grade
  <chr>       <chr>
1 조아라      B+   
2 박수철      B    
3 연민정      A    
4 민국한      A+   

writexl 패키지 사용

# 패키지 설치
 install.packages('writexl')
 
# 패키지 불러오기
 library(writexl)

 # 분석 결과 데이터프레임 생성
 result2 <- data.frame(
   english_name = c("Cho", "Park", "Yeon", "Min"),
   korean_name = c("조아라", "박수철", "연민정", "민국한"),
   score = c(90, 85, 92, 97)
 )

# 엑셀 파일 불러오기
check_file <- read_excel ("output.xlsx")

 # 엑셀 파일 생성 및 데이터 저장
 write_xlsx(result2, "output2.xlsx")

writexl 패키지는 R에서 엑셀 파일을 저장하는 기능만 제공함
writexl 패키지를 사용하면 엑셀 파일을 R 환경에서 저장은 가능하지만, 엑셀 파일을 읽어오는 기능은 제공하지 않음

 

저장한 엑셀 파일에 시트 추가

openxlsx 패키지 사용

# 패키지 불러오기
library(openxlsx)

# 첫 번째 결과 데이터프레임 생성
 result1 <- data.frame(
   english_name = c("Cho", "Park", "Yeon", "Min"),
   korean_name = c("조아라", "박수철", "연민정", "민국한"),
   score = c(90, 85, 92, 97)
 )


# 첫 번째 결과를 output_multi_sheet.xlsx 파일에 저장
write.xlsx(result1, "output_multi_sheet.xlsx", rownames = FALSE) 

# 두 번째 결과 데이터프레임 생성
result2 <- data.frame(
  korean_name = c("조아라", "박수철", "연민정", "민국한"),
  grade = c("B+", "B", "A", "A+")
)

 # output_multi_sheet.xlsx 파일에 다른 시트에 두 번째 결과를 추가로 저장
 wb <- loadWorkbook("output_multi_sheet.xlsx")
 addWorksheet(wb, "Sheet2")
 writeData(wb, "Sheet2", result2)
 saveWorkbook(wb, "output_multi_sheet.xlsx", overwrite = TRUE) 

Image Source : pixabay

https://pixabay.com/illustrations/excel-spreadsheet-icon-mess-icons-1771393/

728x90