2013-05-23 2 views
1

RWeka 패키지를 사용하여 R (30-50 열, 500k-1M 행)의 상당히 큰 숫자 데이터 세트를 이산화하려고합니다.대용량 데이터 세트에 대한 열로 이산화 R

내 원래의 코드는 다음과 같이 보았다 :

disc_data <- Discretize(class~., data=ndata, na.action=na.pass) 

하지만 메모리 부족 오류가 있어요. 나는 그것이 (클래스를 포함하는, 실제로 2 열) 한 번에 하나의 기능에 대한 함수를 호출하는 데 도움 것이라고 생각, 그래서이 쓴 :

x <- cbind(ndata[1],ndata$class) 
disc_data <- Discretize(class~., data=x, na.action=na.pass) 

내가 루프의 일종에서 실행하도록하는과 결과를 함께 결합하십시오. 그러나,이 날을 제공합니다

, 분리 (Discretize)가 아닌 데이터 매트릭스에 대한 data.frame 소요 명확하게하기 위해
Error in model.frame.default(formula = class ~ ., data = x, na.action = na.pass) : 
object is not a matrix 

...

어떻게 디버깅 또는 더 나은 사용하여 중,이 문제를 해결할 수 있습니다 메모리 문제를 해결하는 방법?

답변

0

열 이름이 x 인 항목을 확인 했습니까?

당신이 cbind(ndata[1],ndata$class)을 실행

, 제 2 열은, 하지 class ndata$class 지정됩니다. 당신이 필요로하는 것은

x <- cbind(ndata[1], class=ndata$class) 
+0

입니다. 나는 그것이 전혀 문제가 될 것으로 기대하지 않았습니다. 버그 수정에 도움을 주셔서 감사합니다! – rhae66

관련 문제