Data Import

Sample Code

사용할 데이터는 Revolution 폴더안의 Sample Data로, "mortDefaultSmall2009"라는 이름의 csv파일이다.
데이터의 행 수는 총 10000개 이고, 'creditScore', 'houseAge', 'yearsEmploy', 'ccDebt', 'year', 'default' 로 총 6개의 변수(열)를 가지고 있다.
현재 사용한 데이터는 2009년 데이터이지만, 실제는 2000년부터 2009년까지 10년간의 sample data가 있다.
뒤에 데이터 합치기와 같은 부분에서 다른 연도의 데이터도 사용될 것이다.

1.rxImport


# (1-1)data의 위치지정

# Revolution R을 다운할 시, 자동으로 생성되는 Sample data중 하나인
# 데이터로, sampleData폴더의 'mortDefaultSmall2009' csv파일을 사용

text_mort <- "C:/Revolution/R-Enterprise-6.1/R-2.14.2/library/RevoScaleR/SampleData/mortDefaultSmall2009.csv"

# (1-2)rxImport를 사용한 data import

data_mort <- rxImport(inData = text_mort, outFile = "mort2009.xdf", overwrite = TRUE)
## Rows Read: 10000, Total Rows Processed: 10000, Total Chunk Time: 0.027 seconds

# Import된 데이터 확인

head(data_mort)
##   creditScore houseAge yearsEmploy ccDebt year default
## 1         701       23           2   3661 2009       0
## 2         683       12           5   3384 2009       0
## 3         705       30           5   3210 2009       0
## 4         769       13           5   2843 2009       0
## 5         741       11           7   1532 2009       0
## 6         731       14           4   5302 2009       0

위의 코드에서 (1-2)에 해당되는 코드는 Data Manipulation없이 전체 데이터를 불러들이는 것에 대한 것이다.

rxImport 함수에서 outFile에는 “airline.xdf"로 지정해주어 xdf 파일(.xdf)로 저장되도록 하였는데, 만약 이를 지정해주지않고 outFile=“airline"이라고만 적었을때는, xdf파일이 아닌 DataFrame형식의 파일로 저장된다.


# (1-3)rxImport를 사용한 data import

# 위의 (1-2)와는 다르게 Data Manipulation을 함.

data_mort_mani <- rxImport(inData = text_mort, outFile = "mort2009_mani.xdf", 
    overwrite = TRUE, varsToKeep = c("creditScore", "yearsEmploy", "ccDebt", 
        "default"), rowSelection = default > 0, numRows = 1000)
## Rows Read: 1000, Total Rows Processed: 1000, Total Chunk Time: 0.003 seconds

# Data의 Header 부분 확인

head(data_mort_mani)
##   creditScore yearsEmploy ccDebt default
## 1         710           0   7527       1
## 2         738           5  10469       1
## 3         684           2  12182       1
## 4         622           4   8925       1
## 5         629           2   7868       1
## 6         730           5   7959       1

위의 코드에서 (1-3)은 전체 데이터가 아니라,

  1. varsToKeep 옵션을 사용하여,"creditScore"과 "yearsEmploy"변수를 포함한 총 4개의 변수의 데이터를 불러오게 된다. 이에 반대되는 옵션은 varsToDrop으로 옵션 안에 쓰인 변수를 제외하고 불러오게 된다.

  2. rowSelection 옵션을 사용하여 "default"변수가 0보다 큰 데이터만 불러오게 된다.

  3. numRows 옵션으로는 상위 1000개의 데이터만 불러오도록 하였다.

이 밖에도 위에 주어진 많은 옵션들을 사용하여 다양한 형태로 데이터를 불러오는 과정이 가능하다.

Appendix

ARGUMENTS


1. rxImport

Usage

rxImport(inData, outFile = NULL, varsToKeep = NULL,
varsToDrop = NULL, rowSelection = NULL,
transforms = NULL, transformObjects = NULL,
transformFunc = NULL, transformVars = NULL,
transformPackages = NULL, transformEnvir = NULL,
append = "none”, overwrite = FALSE, numRows = -1,
stringsAsFactors = NULL, colClasses = NULL, colInfo = NULL,
rowsPerRead = NULL, type = “auto”, maxRowsByCols = NULL,
reportProgress = rxGetOption(“reportProgress”),
verbose = 0,
xdfCompressionLevel = rxGetOption(“xdfCompressionLevel”),
…)

2. rxImportToXdf

rxImport의 usage에서 inData -> inSource로, outFile -> outSource로 변환된 것으로 기능적인 측면에서는 rxImport와 거의 같다. rxImport와 다른 점은 outSource가 Null이더라도 xdf파일(.xdf)로 저장이 된다는 것이다.

Usage

rxImportToXdf(inSource, outSource, rowSelection = NULL, transforms = NULL, transformObjects = NULL, transformFunc = NULL, transformVars = NULL, transformPackages = NULL, transformEnvir = NULL, append = “none”, overwrite = FALSE, numRows = -1, reportProgress = rxGetOption(“reportProgress”), verbose = 0, xdfCompressionLevel = rxGetOption(“xdfCompressionLevel”), userObjects = NULL)

3. rxTextToXdf

Usage

rxTextToXdf(inFile, outFile, rowSelection = NULL, rowsToSkip = 0,
transforms = NULL, transformObjects = NULL,
transformFunc = NULL, transformVars = NULL,
transformPackages = NULL, transformEnvir = NULL,
append = “none”, overwrite = FALSE, numRows = -1,
stringsAsFactors = FALSE, colClasses = NULL, colInfo = NULL,
missingValueString = “NA”,
rowsPerRead = 500000, columnDelimiters = NULL,
autoDetectColNames = TRUE, firstRowIsColNames = NULL,
rowsToSniff = 10000, defaultReadBufferSize = 10000,
defaultDecimalColType = rxGetOption(“defaultDecimalColType”),
defaultMissingColType = rxGetOption(“defaultMissingColType”),
reportProgress = rxGetOption(“reportProgress”),
xdfCompressionLevel = rxGetOption(“xdfCompressionLevel”),
userObjects = NULL)

4. rxDataFrameToXdf

Usage

rxDataFrameToXdf(data, outFile, varsToKeep = NULL, varsToDrop = NULL,
rowVarName = NULL, append = “none”, overwrite = FALSE,
computeLowHigh = TRUE,
xdfCompressionLevel = rxGetOption(“xdfCompressionLevel”))


Hankuk University of Foreign Studies. Dept of Statistics. Daewoo Choi Lab. Yeeseul Han.
한국외국어대학교 통계학과 최대우 연구실 한이슬
e-mail : han.lolove17@gmail.com