public bigdata

따라하며 배우는 데이터 과학 3장(데이터 취득과 데이터 가공:SQL과 dplyr) 본문

데이터분석/따라하며 배우는 데이터 과학

따라하며 배우는 데이터 과학 3장(데이터 취득과 데이터 가공:SQL과 dplyr)

public bigdata 2019. 7. 3. 23:03

3.2.1 예제 데이터를 어디서 얻을 것인가?

 

UCI Machine Learning Repository

Welcome to the UC Irvine Machine Learning Repository! We currently maintain 475 data sets as a service to the machine learning community. You may view all data sets through our searchable interface. For a general overview of the Repository, please visit ou

archive.ics.uci.edu

  • R의 'dataset'패키지에서 제공하는 데이터

library(dataset)
data() 	#여기까지 실행하면 사용가능한 데이터셋 목록이 뜬다
 

Kaggle: Your Home for Data Science

 

www.kaggle.com

 

List of datasets for machine-learning research - Wikipedia

These datasets are used for machine-learning research and have been cited in peer-reviewed academic journals. Datasets are an integral part of the field of machine learning. Major advances in this field can result from advances in learning algorithms (such

en.wikipedia.org

 

3.2.3 아주 큰 외부 파일

library(data.table)
DT <- fread("very_big.csv")
DT <- fread("very_big.csv", data.table = FALSE) # data.table = FALSE는 table이 아닌 frame형태로 출력

 

3.2.6 R에서의 SQL연습

  • sqldf패키지를 사용하면 R의 데이터 프레임들을 데이터베이스 테이블처럼 쿼리할 수 있다.

    해당 내용은 정리하지 않고 필요한 경우에 구글링을 통해서 알아보도록 하자

 

3.2.7 RDBMS에서 R로 데이터 읽어 들이기

  • RMySQL, RPostgreSQL, RODBC등을 통해서 RDBMS와 바로 연결 가능하다.

 

3.2.8 SAS, SPSS 불러오기

  • foreign패키지를 통해서 이진 파일들을 불러올 수 있다.

 

3.2.9 system.file

x <- read/dbf(system.file("files/side.dbf", package = "foreign")[1])
# system.file : 패키지의 파일 경로를 찾아준다 여기에 "files/side.dbf"경로를 추가하여 경로를 생성한다.

 

3.5.4 base R

 

Vocab · Advanced R.

Vocabulary An important part of being fluent in R is having a good working vocabulary. Below, I have listed the functions that I believe constitute such a vocabulary. You don’t need to be intimately familiar with the details of every function, but you shou

adv-r.had.co.nz

  • relevel : 특정한 범주 하나를 제일 먼저 나오도록 조정하고 다른 범주들은 그 뒤로 오도록 만들어주는 함수

  • findInterval : 어떤 값이 구간들이 있을 때 어느 구간에 속할지 알려주는 함수(아마... 기능을 세세히 찾아보진 않았다)

  • aperm(배열의 차원을 조작)

 

3.6 R의 dplyr패키지

  • distinct : 중복되는 행을 제거해준다
  • sample_n, sample_frac : 테이터프레임에서 랜덤하게 n개, sample_frac은 비율만큼 뽑아준다
  • glimpse : 데이터프레임을 전치하여 모든 변수를 다 볼 수 있고, 값을 보기에 깔끔하고 좋다
    결과는 아래 그림과 같다
                                    
  • summarize, summarise : 요약통계량을 계산해주는 함수이다 두 함수는 같고 이름은 오스트레일리아/영국식 스펠링이다. 특히 group_by 함수와 같이 사용하면 유용하다.
    summarize 함수는 벡터값을 입력으로 받아 단 한 값(scalar)을 리턴하는 요약 통계량 함수 아무것이나 사용할 수 있다. (summarize는 group_by로 지정된 변수들을 한 번 실행될 때 마다 한 꺼풀씩 벗겨낸다.

    summarize와 함께 사용할 수 있는 함수들을 R베이스 말고도 dplyr패키지에서 제공하는 함수가 있는데 n(), n_distinct(그룹 내 x변수의 고유한 값 개수), first(x), last(x), nth(x, n) : 그룹 내 x변수의 첫 번째, 마지막, n번째 관측치 x[1], x[length(x)], x[n]과 같다.
  • select : 변수를 선택하는 함수이고, select는 그룹 변수를 항상 포함한다(그룹변수: group_by에 의해서 지정된 변수)
  • sample_n, sample_frac 함수 둘 다 그룹별로 랜덤 샘플링한다.
  • union_all : union함수와 같지만 중복된 값들을 버리지 않고 있는 그대로 합쳐준다 테이블에 대해서, 벡터로 값을 받아도 합쳐서 테이터프레임으로 반환해준다. union함수의 경우 중복된 값들은 1개로 축소해서 합쳐준다.
  • SQL 관련한 내용은 SQL이 필요한 경우에 따로 구글링해서 해결하도록 하고 여기선 넘어간다.