본문 바로가기

R

데이터프레임 불러오기 4 - CSV 파일 복습 및 심화

앞선 다른 포스팅 (R: 데이터프레임 불러오기 1 - CSV파일, R 기본데이터세트)에서 잠시 CSV 파일을 어떻게 불러오는지 확인하였다. 본 포스팅에서는 한 번 더 CSV파일을 불러오는 것에 대해 복습하고, 심화된 내용에 대해서도 알아보자. 

실습에 사용할 데이터세트는 지난번 포스팅에서 언급한 Sean Lahman 데이터베이스이므로, 아직 글을 확인하지 않았거나 해당 데이터세트가 없는 경우 위 링크의 글을 읽어보기를 권한다.

CSV 파일

CSV 는  Comma Separated Values라는 뜻으로, 콤마를 통해 값들이 분리되어 있다는 의미이다. 실제로 텍스트 편집기로 CSV 파일을 열어 본 적이 있는 사람이라면, 이름 그대로를 확인해 보았을 것이다. 유사한 방식으로 TSV 파일도 있는데, Tab Separated Values라는 의미이다. 

 

readr 패키지

우선 'readr'이라는 패키지가 설치되어 있어야 한다. 해당 패키지는 기본으로 설치가 되어 있는데 아래 함수들을 실행함에 있어 에러가 발생한다면 install.packages("readr")을 다시 설치하고, library(readr)까지 실행해 주자. 

install.packages("readr")
library(readr)

보통 tidyverse 패키지를 처음에 설치하게 되는데, readr은 tidyverse 안에 포함되어 있으므로, 만약 tidyverse가 설치되었다면 별도로 readr을 설치할 필요는 없다.

 

read_csv() 함수

CSV 파일을 불러오는 방법은 간단하다. 'read_csv()' 함수를 사용하면 된다. 가끔 함수 앞에 콜론이 두 개 붙어 있는 경우가 있다. 이건 패키지명을 특별히 언급하고 싶거나, 특정 패키지로 한정하고 싶을 때 별도로 적어 준다. 

read.csv() 함수도 있으나, read_csv() 함수가 더 빠르고, 날짜 데이터를 정확하게 날짜 타입으로 불러오는 등의 장점이 있으므로, 되도록이면 read_csv() 함수를 사용하자.

# Method 1
People <- readr::read_csv("data\core\People.csv") 

# Method 2
People <- read_csv("data\core\People.csv")

 

readr_example() 함수

혹시 이전 글에 들어가서 Sean Lahman 데이터를 다운로드하기 귀찮은 경우, 다른 방법이 있다. readr 패키지가 제공하는 함수 중에 readr_example()이라는 함수가 있는데, 그 함수를 사용하면 된다. 

read_csv(readr_example("mtcars.csv"))

참고로 readr_example() 함수는 아래의 깃허브 경로에 있는 파일들을 불러올 수 있다.  

https://github.com/tidyverse/readr/raw/main/inst/extdata/

 

read_csv() 함수 더 알아보기

함수나 패키지에 대해서 잘 모를 때에는 그 앞에 물음표를 붙이고 실행시켜 보자.

?read_csv

R Studio의 오른쪽 아래 'Help'에 관련된 설명이 나온다. read_csv()는 read_delim()과 같이 readr 패키지의 한 함수이다.  'Description'에 나와 있는 'read_csv2()'함수에 대해 잠시 알아보자.

유럽 국가에서는 아시아/미주권 국가와 달리 콤마와 마침표가 반대로 사용된다. 예를 들어, 한국에서 숫자 천 단위를 구분할 때 콤마를 사용하고, 소수점은 마침표로 사용하는데, 유럽국가들은 천 단위 구분을 마침표, 소수점은 콤마를 사용한다. 이 경우에는 기존에 작성된 csv 파일이 제대로 인식되지 않을 수 있다. 이때 사용 가능한 함수가 'read_csv2()' 함수이다. 즉, 'read_csv2()'함수는 유럽에서 작성된 파일에 사용할 수 있다.

스크롤을 조금 더 내리면 'Usage' 부분에 read_csv() 함수를 어떻게 사용할 수 있는지, 어떤 Argument들이 있는지 확인할 수 있다. 

read_csv()함수의 Usage

'Argument' 중에서 자주 사용하게 되는 것들은 아래와 같다. 

  • 'file' :  파일경로 및 파일이며, 웹 상에 있는 파일들도 http:// 등으로 제대로 적어주기만 하면 사용 가능하다. 또한. zip 등의 파일은 자동으로 압축을 풀어 준다.
  • 'col_name' : 만약 첫 행에 컬럼명이 들어가 있다면 'TRUE'로 해줘야 한다. 그렇지 않을 경우, 첫 행의 값도 하나의 record로 인식해 버린다.
  • 'id' : 파일명을 id 열로 만들어서 보여준다. 여러 파일들을 합칠 경우, 어느 파일에서 온 데이터인지를 남길 수 있어 유용하다.
  • 'skip' : 만약 시작하는 행이 몇 개 비워져 있다면, 비워져 있는 만큼의 행 수를 skip에 넣어줘야 한다. 

 

더 자세한 내용에 대해서 알고 싶다면 R Cran의 'readr' 패키지 공식문서를 확인해 보자.

https://cran.r-project.org/web/packages/readr/readr.pdf