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에 입력하는 방법을 알아보았습니다.
도움이 되셨기를 바라며, 다음에 또 유익한 정보로 돌아오겠습니다.
감사합니다.