2024 여름 SWLUG/개인정보보호 프로젝트

R Studio CSV 파일 불러오기

un_plugged 2024. 7. 28. 16:43

이번 과제는 엑셀 파일을 csv파일로 변환 후 불러오고 저장해보는 과제이다. 

참고 강의

https://www.youtube.com/watch?v=lDmze6TL6Ds

 

 

 

사용할 엑셀 파일

아직 데이터 셋을 만들지 않아 공공데이터포털에서 제공하고 있는 엑셀 데이터를 이용해 실습해보겠다. 

개인정보보호 프로젝트니까 개인정보보호에 관련된 엑셀 파일을 활용해보았다...ㅎㅎ

 

 

 

Step 1. 

다운받은 엑셀 데이터를 csv 파일로 변환한다. 확장자는 ".csv"이다.

 

확장자와 파일 형식을 바꾸어주고 확인을 누르면 현재 시트만 저장이 가능하다고 나온다.

csv 파일은 엑셀의 여러 시트를 저장하지 못하고 하나의 파일에 하나의 시트만 저장이 가능하다는 단점이 있다.

 

이제 R Studio에서 이 파일을 변경해보겠다.

 

Step 2.

불러들일 파일의 위치를 세팅해준다.

setwd("")

set working directory의 약자로 따옴표 안에 파일의 위치를 복사해서 넣어주면 된다. 파일의 위치는 해당 파일 우클릭 -> 속성에 들어가서 확인할 수 있다.

이렇게 되면 R에 파일의 위치를 세팅해준 것이다. 


※주의사항

위와 같이 하고나서 반드시 역 슬래쉬를 반대로(/) 바꾸어줘야 한다. 역 슬래쉬는 해당 문자를 다른 기능으로 해주기 때문이다.

또한 반드시 마지막 닫아주는 것까지 해야한다. 즉, 여기선 Desktop 뒤까지 넣어줘서 마무리 해야한다. 

 

일일이 다 변경하는 방법이 있지만 이 방법은 너무 귀찮기 때문에...Find/Replace기능을 사용할 것이다.

 

상단의 돋보기를 클릭한다. 

여기서 Find에는 역 슬래쉬를 넣어주고 Replace에 그냥 슬래쉬를 넣어준다. 이는 Find에 넣은 값을 찾아 Replace에 넣은 값으로 대체해준다는 뜻이다.

변경해준 다음에는 반드시 Desktop 뒤에까지 슬래쉬를 하나 더 넣어준다. 


Ctrl + Enter를 통해 실행을 해준다. 만약 경로 중 한국어가 포함될 시 Warning message가 뜨는데 크게 신경쓰지 않아도 된다. 

 

Step 3.

파일을 불러들이는 함수 read.csv를 사용한다.

저장할 데이터 명 <- read.csv("파일명.csv",header 옵션)

여기서 header 옵션이란 첫번째 행은 변수명으로 할 것인지 아닐지 지정하는 옵션이다. header = T라면 첫번째 행은 변수명으로 두번째 행부터 자료값을 불러들인다. 

 

※파일명 또한 속성에서 확인할 수 있는데 반드시 파일명 끝에 .csv를 붙여주어야 한다!

 

참고로 파일명을 속성에서 복붙해도 되지만 큰 따옴표 사이에 커서를 둔 상태로 키보드의 Tab을 누르면 워킹 디렉토리로 지정한 위치의 파일들이 나타난다. 또한, 해당 위치에 존재하는 폴더 안으로도 이동이 가능하다. Tab -> 폴더 엔터 -> 다시 Tab을 누르면 해당 폴더 속 파일들이 나타난다. 

 

작성 후 실행했더니

위와 같은 에러가 떴다. 강의에서 없던 내용이라 찾아보니 csv 파일에 한국어가 포함되면 에러가 난다는 것이다...

 

이 에러는 header 옵션 다음에 아래의 코드를 삽입 후 해결할 수 있다. 

,fileEncoding = "euc-kr"

잘 실행이 되었다! 

 

우측에 Data 항목을 클릭하면 파일을 볼 수 있다. header = T 옵션을 사용했기 때문에 첫번째 행은 변수명이고 두번째 행부터 자료값이다. 

만약 header = F라면 아래와 같이 첫번째 행부터 자료값으로 나온다. 대신 변수명이 지정되지 않았기 때문에 임의로 V1, V2...로 나온다. 

 

만약 잘 불러들여졌는지 간단히 확인하고 싶으면 아래의 head 함수를 사용하면 된다. 

이 함수는 앞의 6개만 불러들여 잘 불러들여졌는지 확인이 가능하다.

head(파일을 저장한 데이터명)

 

 

 

 

실행이 잘 되었다. 지금은 엑셀 블럭에 따라 출력이 되어서 조금 이상하게 나오는데 임의로 데이터셋을 만들 때는 잘 조정해서 만들면 깔끔하게 출력될 것 같다.