본문 바로가기
Data·AI/R 데이터분석

R. 데이터셋 로딩하기 - Excel, JSON, 외부링크 데이터

by hyun-am 2020. 8. 21.

데이터셋 로딩하기

 

Excel데이터 로드하기

 

먼저 Excel 데이터를 로드하기 위해 다음과 같은 패키지를 설치하고 메모리에 로드하겠습니다.

install.packages('readxl')
library(readxl)

엑셀을 보면 하나의 시트가 이루어 진것이 아니라 다양한 시트들로 구성되어 있습니다. 여기 library에서 excel_sheets('파일이름')을 이용하면 엑셀 내부에 어떤 시트가 있는지 확인할 수 있습니다.

 

다음과 같은 파일의 시트 목록을 조회하겠습니다.

excel_sheets('customer.xlsx')

그러면 다음과 같은 이름을 가진 두개의 시트가 있다는 것을 확인할 수 있습니다.

 

먼저 mycustomer시트의 데이터를 로딩하겠습니다.

 

1. mycustomer 시트 로드하기

cs_xl <- read_excel(path = 'customer.xlsx', 
                    sheet = 'mycustomer',
                    col_names = TRUE, 
                    trim_ws = TRUE, 
                    na = c('.', '?')) 
cs_xl                    

실행하면 다음과 같은 tibble형식의 데이터 테이블이 생성된 것을 확인할 수 있습니다.

2. mycustomer2 시트 로드하기

 

먼저 엑셀에서 mycustomer2시트를 보면 다음과 같이 좀 복잡하게 구성되어 있는것을 확인할 수 있습니다.

 

여기서 특이사항을 정리하자면

- col_names가 없다.

- 데이터의 시작 범위가 B5부터 I10까지 있습니다.

 

따라서 이것을 반영해서 데이터를 로드하자면

cs2_xl <- read_excel(path = 'customer.xlsx', 
                     sheet = 'mycustomer2',
                     col_names = FALSE, 
                     trim_ws = TRUE, 
                     na = c('.', '?'),
                     range = 'B5:I10') 
cs2_xl                 

이런식으로 코드를 작성하고 또한 실행하면 다음과 같이 col_namedl ...1, ...2 와 같은 이름으로 지정된 것을 확인할 수 있습니다.

이제 이것을 다시 rename하기 위해 다음과 같은 dplyr::rename을 사용하겠습니다.

cs2_xl <- rename(cs2_xl, 'name' = 1, 'gender' = 2, 'job' = 3, 'age' = 4, 
                 'grade' = 5, 'survey' = 6, 'total' = 7, 'result' = 8)

컬럼명이 잘 생성된 것을 확인할 수 있다.

 

JSON데이터 로드하기

먼저 json을 로드하기 위해 다음과 같은 패키지를 설치하고 메모리에 로드하겠습니다.

install.packages('jsonlite')
library(jsonlite)

그 후 다음과 같은 명령어로 데이터 셋을 로딩하겠습니다.

cs_js <- fromJSON(txt = 'customer.json')

실행하면 다음과 같은 데이터프레임이 잘 생성된 것을 확인할 수 있습니다.

 

인터넷 상의 외부 데이터 로딩하기

 

다음은 인터넷에 있는 데이터를 로딩하겠습니다. 먼저 데이터가 있는 저장소 사이트에 접속하겠습니다.

 

저는 UCI 머신러닝 저장소 사이트에 접속하겠습니다.

browseURL('http://archive.ics.uci.edu/ml')

실행하면 다음과 같은 사이트에 접속되는 것을 확인할 수 있습니다.

 

여기서 저는 Iris데이터를 불러오겠습니다. 먼저 Iris를 클릭한 후 다음과 같은 페이지가 나오면 Data Folder를 클릭하겠습니다.

 

그러면 다음과 같은 화면이 나오는데 

여기서 상단에 나와있는 다음과 같은 주소를 입력한 후 마지막에 iris.data를 입력해주겠습니다.

url <- 'http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'

이제 두가지 방법을 통해 데이터를 로드하겠습니다.

 

1. read.table( )를 이용해 데이터 로드하기

iris <- read.table(file = url, header = FALSE, sep = ',')
iris

그러면 다음과 같이 많은 데이터들이 나오는 것을 확인할 수 있습니다.

 

2. read_delim()함수를 이용해 데이터 로딩

iris_tb <- read_delim(file = url, col_names = FALSE, delim = ',')
iris_tb

다음과 같이 tibble 형식의 데이터가 생성됩니다.

 

이제 임의로 지정된 컬럼명을 변경하겠습니다.

names(iris_tb) <- c('sepal_length', 'sepal_width', 
                    'petal_length', 'petal_width', 
                    'type')
iris_tb

그러면 다음과 같이 컬럼 명이 변경된 것을 확인할 수 있습니다.

 

 


이 자료는 https://www.youtube.com/channel/UChPuesN49tcqQqYRQHrLCuw를 참조하여 작성하였습니다.

 

K-ICT 빅데이터센터

판교 K-ICT 빅데이터센터 공식 유튜브 채널입니다.

www.youtube.com

 

댓글