저는 9 열의 data.frame (x)을 가지고 있으며 수백만 개의 행이 있습니다. 나는 그것을 R로 읽어 들일 수 있었고, 성공적으로 수정을 가하면 코드는 문제없이 실행될 것이다. 그러나, 나는 때write.csv를 사용하는 동안 메모리 오류가 발생했습니다.
write.csv(x,file=argv[2],quote=F,row.names=F)
내가 데이터가 메모리에 이미 같은이 말이 안
Error: cannot allocate vector of size 1.2Gb
라는 오류가 발생하여 .csv 파일로 그것을 밖으로 쓰기는 계산 완료 , 그리고 내가하고 싶은 것은 디스크에 그것을 쓰는 것뿐입니다. 또한 메모리를 모니터링하는 동안 가상 메모리 크기는이 쓰기 단계 동안이 프로세스에서 거의 두 배가됩니다. 이 data.frame 도움을 작성하는 사용자 지정 C 함수를 작성하겠습니까? 어떤 제안/도움/포인터 감사.
ps : 저는 약 24G RAM이 장착 된 64 비트 우분투 상자에서이 모든 것을 실행하고 있습니다. 전반적인 공간이 문제가되지 않을 수도 있습니다. 데이터 크기는 약 10G입니다
가장 간단한 방법은'append = TRUE'를 사용하여 작은 조각으로 파일에 작성하는 것입니다. 제쳐두고, 컴퓨터에 설치된 총 RAM은 메모리 문제가 있는지 여부를 나타내는 잘못된 표시 일 수 있습니다. R은 특정 크기의 메모리 블록을 자주 필요로하기 때문입니다. 24Gb를 사용하더라도 10 개의 인접한 Gb 메모리를 찾는 것이 때때로 어려울 수 있습니다. – joran
@joran이 말한 바. 즉시'gc()'를 시도 할 수는 있지만,별로 도움이되지는 않습니다. –
.RData 이미지로 개체를 저장하고 새 세션에서로드 할 수 있습니다. 어떤 이유로 계산 후 객체보다 메모리를 덜 소모합니다. 이 트릭을 때로는 메모리 문제가 발생할 때 사용합니다. –