지방이의 Data Science Lab

[R] 범주형 숫자형 대용량 데이터 처리 방법 본문

Data Analysis/깨R지식

[R] 범주형 숫자형 대용량 데이터 처리 방법

[지현] 2019. 4. 4. 18:36

데이터가 100만개가 넘어가면 data.frame으로는 어림없다.

램문제로 고생하고 돌아가지도 않는다. 

이때 사용하는게 data.table이다. 

 

data.table은 데이터를 합치고 쪼갤때 데이터가 100만개가 넘는 상황에서 20-40배 빠른 속도 차이를 보인다.

심지어 램으로 인해 안돌아가는 코드가 돌아가기도 한다. 

 

밑의 코드는 패턴 분석할때, 클러스터링을 위해 integer로 설정된 2천개가 넘는 컬럼을 "한번에" 다 numeric처리해줄때 필요하다. 

 

 

아래코드를 보통 많이 사용해왔었는데, 

#sample2[, 2:dim(sample2)[2]] = sapply(sample2[, 2:dim(sample2)[2]], as.numeric)

3억개의 데이터를 패턴분석을 위해 Sparsity Data로 변경하면,

컬럼이 무수히 늘어나는 고객 취향 분류를 할때면 위의 코드로는 어림없었다.

 

처리속도랑 class를 신경써야지만 코드가 돌아간다. 

library(magrittr)

sample2[, 2:dim(sample2)[2]] %<>% lapply(function(x) as.numeric(as.character(x))

 

 

Comments