프로그래밍 /R

R로 데이터 가져오기(2)

yooj_lee 2019. 6. 12. 16:22
300x250

- 데이터 가져오기(2)

 

1. 데이터베이스에서 가져오기 (추후에 SQL을 배우면 따로 추가할 예정)

 

 

2. R 바이너리 파일

: RData 파일을 이용하는 것. RData 파일은 어떤 종류의 R 객체도 가질 수 있는 바이너리 파일이다. 객체를 하나 이상 저장할 수 있으며, 타 운영체제와의 파일 공유도 문제 없다. 

1) R 객체를 RData 파일에 저장하기

save(object1, object2, ..., file = file.path)

2) RData 파일 불러오기

: load(file = file.path)

 

3. R에 포함된 데이터

: R과 일부 패키지들은 데이터를 기본적으로 포함하고 있어서 그냥 불러오기만 하면 된다.

ex) read diamonds data from ggplot2 package.

require(ggplot2)

data(diamonds) -> 데이터 불러오는 커맨드

 

활용 가능한 데이터 목록을 확인하기 위해, 콘솔에 data()를 입력할 수 있다.

 

4. 웹 사이트에서 데이터 추출

두가지 케이스로 나뉜다. lucky → 데이터가 HTML 테이블로 깔끔히 저장 // unlucky → 페이지 파싱

 

1) HTML 테이블로 저장되어 있는 경우

XML 패키지의 readHTMLTable을 사용하여 쉽게 가져올 수 있음. 

ex)

HTML 테이블로 깔끔하게 정리되어 있는 경우(출처: https://www.jaredlander.com/2012/02/another-kind-of-super-bowl-pool/)

이러한 경우는,

require(XML) #패키지 불러오기

theURL <- url

var1 <- readHTMLTable(theURL, which = 1, header = FALSE, stringsAsFactors = FALSE)

* which 인자는 여러 테이블이 있을 경우 어떤 테이블을 읽을지 선택하기 위해 사용한다.

 

2) 웹 데이터 긁어오기(a.k.a. 웹 크롤링)

: 데이터가 깔끔하게 저장되어 있지 않다면, 데이터를 가져오기 위해 페이지를 크롤링한 후 추가적인 작업을 수행해야 한다. 이 과정에서 패턴 매칭과 정규표현식이 요구된다. HTML 형식에서 내가 원하는 데이터를 감싸고 있는 부분의 패턴을 찾아내야 하고, 당연히..최소한의 HTML 지식이 있어야 한다.

 

300x250