CSV 파일 불러오기 in R

2024. 7. 13. 16:55프로그래밍/R - 데이터 불러오기

반응형

안녕하세요? 분석하는 디제이입니다.

 

오늘은 R에서 CSV파일을 불러오는 방법에 대해 알려드리려고 합니다.

 

그럼 가시죠!

 


CSV파일을 불러오는 함수는 read.csv('파일이름.csv', 옵션1, 옵션2 ...)입니다.

 

'temp'라는 csv파일에 다음과 같은 데이터가 있다고 합시다.

 

 

data<-read.csv('temp.csv') 를 실행하면 아래처럼 data란 이름에 데이터가 잘 들어간 것을 볼 수 있습니다.

 

 

그런데 가끔 불러오다보면 이렇게 제목값이 데이터 1행으로 들어가는 경우가 있는데요.

 

 

이럴 때는 옵션 'header=T'를 사용해주어야 합니다. 제목이 하나 있으니 데이터를 1행으로 넣지 말라는 옵션인데요. 

data<-read.csv('temp.csv', header=T) 이렇게 넣어주면 됩니다. 그러면 아래처럼 제목이 다시 제목으로 들어가게 됩니다.

 

 

 

 

보통은 이정도만하면 웬만하면 파일이 잘 불러와집니다.

그런데 데이터에 한글이 있을 경우 오류나는 경우가 종종 있는데요.

temp2라는 csv파일에 다음 데이터가 있다고 가정해봅시다.

 

 

앞서 배운 read.csv('temp2.csv')를 입력했는데 오류가 발생합니다. invalid multibyte string이 발생했다고 하면서요. 

이건 CSV파일에서 한글이 UTF-8형태로 입력되지 않을 때 발생하는 오류입니다.

이럴 때 해결하는 방법은 2가지인데요.

 

 

첫번째는. 엑셀 파일을 CSV-UTF-8 형태로 다시 저장하는 방법입니다.

아래와 같은 형식으로요. 

 

그러면 앞서 오류가 났던 read.csv('temp2.csv') 명령어가 잘 작동하는 것을 볼 수 있습니다.

 

 

 

두번째는 함수에 fileEncoding="euc-kr" 혹은 fileEncoding="cp949" 옵션을 입력해주는 것입니다.

read.csv('temp2.csv',fileEncoding="euc-kr")
read.csv('temp2.csv',fileEncoding="cp949")

그러면 아래에서 아무것도 입력하지 않은 data1은 오류가 나지만, "euc-kr"옵션, "cp949"옵션을 입력한

data2와 data3는 데이터가 잘 들어간 것을 확인할 수 있죠. 

 

 

 

이정도면 웬만한 csv파일 인코딩은 문제없을거라 생각합니다.

그 외에 제가 가끔 사용하 는 옵션은 stringAsFactors = TRUE 인데요,

'문자형을 인코딩할 때 자동으로 Factor형태로 입력해달라'는 옵션입니다.

 

아래 예시를 들어봤는데요. 옵션을 사용하지 않은 data1과 옵션을 사용한 data2의 데이터 타입을 보면

data1에서는 문자가 'character'형태으로 들어갔고, data2에서는 문자가 'factor'형태로 들어간 것을 확인할 수 있습니다.

 

 

 

이것으로 오늘은 csv데이터를 r에 입력하는 방법을 알아보았습니다.

 

도움이 되셨기를 바라며, 다음에 또 유익한 정보로 돌아오겠습니다.

 

감사합니다.

반응형