Eco Life & Bioteco

biology and technology in MY LIFE

공부/R & Python

[R]r에서 엑셀파일, CSV파일 불러오기

bioteco 2020. 11. 3. 16:40

R을 사용하다보면 .txt파일을 이용할 때보다는 엑셀, CSV파일을 불러오는 경우가 많습니다.

저는 그래요..^^;;

그래서 CSV 파일과 엑셀자료를 R로 가지고 오는 방법에 대해 작성해보려고 합니다.

 

 

1. 먼저 파일을 준비합니다. (저는 c:/에 CSV파일과 엑셀자료를 저장했습니다.)

 

2. R에서 CSV 파일을 불러옵니다.

library(readxl)
read.CSV <- read.csv(file = "c:/123.csv")
read.CSV

저는 c:/에 123이라는 이름의 CSV파일을 넣어두었습니다.

Rstudio에서는 "c:/" 까지만 입력하시고 /뒤에서 탭 키를 누르면 지정한 파일내에 있는 모든 폴더를 확인 할 수 있습니다.

파일이름을 직접입력해도 되지만 조금더 쉽게 찾을 수 있겠죠~?

저는 CSV를 read.CSV로 이름을 지어 불러왔습니다.

이름은 본인이 하고 싶은 이름으로 하면 됩니다. 간단하게 a라고 해도됩니다.

 

혹시 install.package()와 library()에 대해 알고 싶으시면 (아래 링크)

2020/11/02 - [공부/R] - [R]r에서 패키지(package) 다운받는 방법과 엑셀 불러오는 방법

참고하세요~^^


2-1. 첫번째 행을 이름으로 지정하지 않을 때

기본적으로 read.csv()를 이용해서 파일을 불러오면 첫번째 행의 내용을 열의 이름으로 지정하게 됩니다.

그래서

나는 첫번째 행을 이름으로 지정하고 싶지 않아요!! 

라고 생각하시는 분들은 다음과 같은 코드를 이용하시면 됩니다.

library(readxl)
read.CSV <- read.csv(file = "c:/123.csv", header = F)
read.CSV

header 라는 함수에 F라고 작성을 해주면 첫번째 행을 열의 이름으로 지정하는 것을 없애줍니다.

 

read.CSV <- read.csv(file = "c:/123.csv", header = F)
read.CSV
names(read.CSV)
 [1] "V1" "V2" "V3"


read.CSV <- read.csv(file = "c:/123.csv", header = T)
read.CSV
names(read.CSV)
 [1] "a" "b" "c"

names()라는 함수를 이용하면 보다 쉽게 파악할 수 있습니다~^^

header = T 일때와 F 일때의 차이를 아시겠죠~? ^^


3. 엑셀파일 불러오기

엑셀파일을 불러오는 방법은 불러오는 함수만 다르지 .CSV파일을 불러오는 방법이랑 동일합니다.

 

library(readxl)
read.excel <- read_xlsx(path = "c:/123.xlsx")
read.excel

# A tibble: 7 x 3
     a     b     c
  <dbl> <dbl> <dbl>
1     1     2     3
2     2     3     4
3     3     4     5
4     4     5     6
5     5     6     7
6     6     7     8
7     7     8     9

names(read.excel)
 [1] "a" "b" "c"

 

여기서 중요한 점은 최신? 엑셀 파일은 read.xlsx()라는 함수를 이용해야 합니다.

엑셀버전의 기준이 언제부터인지는 모르겠지만.. 내가 불러올 파일이 read.xlsx()로 열리지 않는다면

read.xls() 함수를 이용해서 불러오도록 합니다.


3-1. 엑셀파일의 첫번째 행을 열의 이름으로 지정하고 싶지 않을 때

read.csv() 함수와 다르게 read.xlsx에서는 col_names 라는 함수를 이용합니다.

> read.excel <- read_xlsx(path = "c:/123.xlsx")
> read.excel
# A tibble: 7 x 3
      a     b     c
  <dbl> <dbl> <dbl>
1     1     2     3
2     2     3     4
3     3     4     5
4     4     5     6
5     5     6     7
6     6     7     8
7     7     8     9
> names(read.excel)
[1] "a" "b" "c"


> read.excel <- read_xlsx(path = "c:/123.xlsx", col_names = F)
New names:
* `` -> ...1
* `` -> ...2
* `` -> ...3
> read.excel 
# A tibble: 8 x 3
  ...1  ...2  ...3 
  <chr> <chr> <chr>
1 a     b     c    
2 1     2     3    
3 2     3     4    
4 3     4     5    
5 4     5     6    
6 5     6     7    
7 6     7     8    
8 7     8     9    
> names(read.excel)
[1] "...1" "...2" "...3"

.csv 파일에서와 마찬가지로 열의 이름을 지정하지 않는 것을 확인 할 수 있습니다.


3-2. 엑셀 시트 변경

엑셀의 왼쪽하단에 보면 Sheet1, Sheet2...  시트탭을 볼 수 있습니다.

R에서 불러올때에 1번 시트의 내용을 불러올건지, 2번 시트의 내용을 불러올 것인지 선택할 수 있습니다.

> read.excel <- read_xlsx(path = "c:/123.xlsx", col_names = T, sheet = 1)
> read.excel 
# A tibble: 7 x 3
      a     b     c
  <dbl> <dbl> <dbl>
1     1     2     3
2     2     3     4
3     3     4     5
4     4     5     6
5     5     6     7
6     6     7     8
7     7     8     9

> read.excel <- read_xlsx(path = "c:/123.xlsx", col_names = T, sheet = 2)
> read.excel 
# A tibble: 5 x 3
      d     e     f
  <dbl> <dbl> <dbl>
1    10    60    10
2    20    50    80
3    30    10    40
4    40    20    20
5    50    50    10
> names(read.excel)
[1] "d" "e" "f"

sheet = 에 불러올 시트의 번호를 입력해주면 됩니다.

1번 시트냐, 2번 시트냐를 입력해주면 원하는 시트를 R에 불러올 수 있습니다.