'R 외부데이터 불러오기'에 해당되는 글 1건

  1. 2015.07.11 R 데이터 편집기 edit(), 외부 파일 데이터 불러오기 read.table() 5

R에서 데이터를 c() 함수로 직접 입력하는 방법은 지난 포스팅에서 알아보았습니다. 

 

이 외에도

 

(1) edit() 함수를 이용해 엑셀 처럼 그리드 창에 직접 입력하는 방법과,

 

(2) 외부에서 txt나 csv, 엑셀 파일 등을 직접 불러오는 방법도 있습니다. 



(1) R 데이터 편집기 edit() 


엑셀 처럼 생긴 데이터 편집기 창을 사용하려면 edit() 함수를 이용하며, 데이터 프레임 구조로 저장됩니다. 

비교적 소규모의 데이터를 입력하기에는 써볼만 하겠지만, 대용량 데이터를 입력해야 하는 거라면 좀 무리겠지요? 


## 데이터 입력창 edit() 

> d.f <- data.frame()  # 데이터 프레임을 먼저 생성해 주고 나서, 

> d.f <- edit(d.f)  # 데이터 편집기 창 불러오기



edit() 함수로 데이터 편집기를 호출하면 아래와 같은 창이 뜹니다. 



'var1', 'var2', ....  부분을 클릭하면 '변수 편집기' 창이 팝업되며, '변수명'과 '유형(numeric, character)'을 편집할 수 있습니다. 




2. 외부 파일 데이터 불러오기  read.table() 


다수의 변수에 대해 다수의 관찰값이 2차원 형태로 구성된 데이터 파일을 불러오는데 read.table() 함수를 사용합니다. 


아래와 같은 데이터셋이 있습니다.

 


dataset_1.txt




> ## 외부 데이터셋 파일 불러오기

> dataset_1 <- read.table("C:/Users/user/Documents/R/dataset_1.txt", 

+                         header = TRUE,  # 변수명

+                         sep = ",",  # 구분자

+                         stringsAsFactor = FALSE, # 문자형 데이터를 요인으로 인식할지 여부

+                         na.strings = ""  # 결측값 표시

+                         ) 


  • '#' 은 R이 인식하지 않으므로 '#' 기호를 활용해 데이터셋에 대한 부가적인 설명을 덧붙여 놓을 수 있음

  • 파일 경로 입력할때는 Windows 탐색기 경로 구분자 '\' 가 아니라 '/' 로 반대 방향임을 주의 

  • 구분자 sep에는 콤마 ",", 빈칸 " ", ":", tap (sep = "\t") 등이 있음

  • stringsAsFactor = TRUE 하면 문자형 데이터를 요인(factor)으로 인식함. 요인으로 불러오는게 맞는지 아닌지 확인 필요

  • na.strings = "", ".", "NA" 등이 있음

  • 'csv' 파일은 read.csv() 함수를 사용. read.table() 함수와 다른 점은, read.csv()함수는 sep="," 옵션이 필요 없다는 점과 파일명 끝이 "dataset_name.cvs"로 끝난다는 점. csv 파일이 'comma separated values'의 약자로서 콤마로 구분자가 되어 있기 때문임. 


RStudio 의 우측 상단 'Environment' 메뉴에 보면 'dataset_1' 데이터 프레임이 생겼음을 확인할 수 있으며, 이를 클릭 시 왼쪽 상단에 'dataset_1' 이름으로 데이터셋 보기 화면이 열린다. 




엑셀, SAS, SPSS, 인터넷 홈페이지에서 불러오는 패키지가 있기는 합니다만 비추천하므로 포스팅은 생략합니다. 

엑셀은 sheet가 나뉘어져 있을 수도 있고 매크로 등의 함수가 걸려있을 수도 있어서 오류 여지가 있기에 엑셀 파일을 R로 불러오기 하는 것은 비추천합니다. SAS나 SPSS 파일을 불러오는 패키지도 버전 오류 여지가 있기에 비추천합니다. 홈페이지 URL도 언제 어떻게 바뀔지, 언제 없어질지 모르므로 비추천합니다. 

(엑셀 파일 불러오기 참고 ☞ http://rfriend.tistory.com/313 )


그냥 맘편하게, 확실하고 정확하게, txt나 csv 파일로 내려서 파일 불러오기 read.table() 함수 사용하시는걸 추천합니다. 

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

728x90
반응형
Posted by Rfriend
,