고급 파일 읽기

R의 data.table로 데이터 조작하기

Matt Dowle, Arun Srinivasan

Instructors, DataCamp

integer64 타입으로 큰 정수 읽기

  • 기본적으로 R은 2^31 - 1 = 2147483647 이하의 숫자만 표현할 수 있습니다.
  • 큰 정수는 bit64 패키지에서 제공하는 integer64 타입으로 자동 읽힙니다.
ans <- fread("id,name\n1234567890123,Jane\n5284782381811,John\n")
ans
           id name
1234567890123 Jane
5284782381811 John
class(ans$id)
"integer64"
R의 data.table로 데이터 조작하기

colClasses로 열 클래스 유형 지정

str <- "x1,x2,x3,x4,x5\n1,2,1.5,true,cc\n3,4,2.5,false,ff"

ans <- fread(str, colClasses = c(x5 = "factor")) str(ans)
Classes 'data.table' and 'data.frame':    2 obs. of  5 variables:
 $ x1: int  1 3
 $ x2: int  2 4
 $ x3: num  1.5 2.5
 $ x4: logi  TRUE FALSE
 $ x5: Factor w/ 2 levels "cc","ff": 1 2
R의 data.table로 데이터 조작하기

colClasses로 열 클래스 유형 지정

ans <- fread(str, colClasses = c("integer", "integer", 
                                 "numeric", "logical", "factor"))
str(ans)
Classes 'data.table' and 'data.frame':    2 obs. of  5 variables:
 $ x1: int  1 3
 $ x2: int  2 4
 $ x3: num  1.5 2.5
 $ x4: logi  TRUE FALSE
 $ x5: Factor w/ 2 levels "cc","ff": 1 2
R의 data.table로 데이터 조작하기

colClasses로 열 클래스 유형 지정

str <- "x1,x2,x3,x4,x5,x6\n1,2,1.5,2.5,aa,bb\n3,4,5.5,6.5,cc,dd"
ans <- fread(str, colClasses = list(numeric = 1:4, factor = c("x5", "x6")))
str(ans)
Classes 'data.table' and 'data.frame': 2 obs. of 6 variables:
 $ x1: num  1 3
 $ x2: num  2 4
 $ x3: num  1.5 5.5
 $ x4: num  2.5 6.5
 $ x5: Factor w/ 2 levels "aa","cc": 1 2
 $ x6: Factor w/ 2 levels "bb","dd": 1 2
R의 data.table로 데이터 조작하기

fill 인수

str <- "1,2\n3,4,a\n5,6\n7,8,b"
fread(str) 
V1 5 6
 7 8 b
Warning message:
In fread(str) :
  Detected 2 column names but the data has 3 columns (i.e. invalid file). 
  Added 1 extra default column name for the first column which is guessed to 
  be row names or an index. 
  Use setnames() afterwards if this guess is not correct, 
  or fix the file write command that created the file to create a valid file.
R의 data.table로 데이터 조작하기

fill 인수

fread(str, fill = TRUE)
V1 V2 V3
 1  2
 3  4  a
 5  6
 7  8  b
R의 data.table로 데이터 조작하기

na.strings 인수

결측값은 흔히 다음과 같이 인코딩됩니다: "999" 또는 "##NA" 또는 "N/A"

str <- "x,y,z\n1,###,3\n2,4,###\n#N/A,7,9"
ans <- fread(str, na.strings = c("###", "#N/A"))
ans
x  y  z
1 NA  3
2  4 NA
NA 7  9
R의 data.table로 데이터 조작하기

연습해 봅시다!

R의 data.table로 데이터 조작하기

Preparing Video For Download...