2016-12-21 1 views
0

입니다. 데이터 테이블을 행렬로 캐스팅하려고합니다.캐스트 함수의 최대 열이 R

긴 형식의 데이터 표에는 수십만 개의 행이 있으며 그 중 큰 형식으로는 행렬으로 서식을 지정하고 싶습니다.

평가 오류 (대체 (EXPR), envir : 당신은 X를 늘리면

library(stringi) 
library(data.table) 
library(reshape2) 

x <- 500 
test <- data.table(first=stri_rand_strings(x,5), 
        second=stri_rand_strings(x,5), 
        third=runif(x), 
        fourth= runif(x)) 
testMatrix <- acast(test,first~second, 
        value.var = "third", 
        fun.aggregate = mean, 
        fill=0) 

이 스 니펫은 어떤 점에서 다음과 같은 오류가 발생합니다 :

나는 다음과 같은 예를 만들었습니다 , enclos) : n은 양의 정수 여야합니다.
경고 메시지 : split_indices (.group, .n)의 경우 : 강제 변환을 통해 정수 범위에 도입 된 NAC는

메모리 제한 경고가 표시되지 않습니다. 여기서 무슨 일이 일어나고있는거야? 왜 그런가? 행렬 또는 캐스트 함수 용 RAM 외에도 다른 제한 사항이 있습니까?

당신은 가능성이 표시되고 오류가 아닌 경우에도 메모리가 부족하고
로엘

답변

1

사전에 감사합니다. x <- 5e3을 설정하면 1900MB의 2,500 만 개의 요소가있는 matrix이 생성됩니다. x <- 5e4을 변경하면 25 억 개의 요소가있는 행렬이 생성되고 대략적인 외삽 법을 사용하면 19GB 정도의 행렬이 만들어집니다.