패키지 소스를 변경/다시 컴파일하여이 문제를 해결했습니다.
ff에서 많은 기능 중에서 ff 개체를 만들고 get/set 하위 스크립트 메서드를 호출하여 범위가 좁아서 밤에이 작업을 수행 할 수 있었지만 모든 크레딧은 구성한 원래 작성자에게만 돌아갔다. 근원. 사실, 저자는이 문제에 대해 잘 준비했고 다양한 종류의 색인 및 크기에 대해 C 매크로를 만들었습니다. 방금 C 매크로를 사용하여 원하는 것을했습니다.
대략 내가 한 일입니다. C 함수 new
로 크기와 페이지 크기를 전달할 때
- 는 as.integer 대신 FF 함수
- 사용 as.double을 FF 객체의 크기 (길이)에 대한 모든 에러 체크 정수를 제거한다. ff.h에서
, 난
r_ff.c의 r_ff_new 방법 #define FF_DECL_TYPE(NAME,TYPE) \
FF_DECL_TYPE2(NAME,TYPE,int,int) \
FF_DECL_TYPE2(NAME##_d,TYPE,double,double)
* _d_new 모든 * _new 기능을 대체 사용 asReal 대신 매크로 ff.cpp의 해당 부분에 따라 재정의 렌에 대한 asInteger 및 페이지 크기
내가 할 수 있지만, 내 초기 테스트에서, 내가 위에서 내 질문에 문을 실행할 수 및/R. 내에서 배열의 요소를 설정 얻을 수있는 많은 것들이 확신 객체는 R을 떠나지 않고 예를 들어 30GB 데이터 큐브를 전처리하고 분석하는 것입니다. 그리고 나는이 근처에있다.
R의 (지정되지 않은) 64 비트 버전에서 .Machine $ integer.max를보십시오 (항상 그렇게되었을 것입니다). R 3.0+는 더 긴 53 비트 인덱스 (숫자 가수의 길이)를 허용하므로 ff의 작성자가 코드에서 아직 테스트를 변경하지 않았을 가능성이 있습니다. –
http://google-opensource.blogspot.ca/2011/11/bringing-64bit-data-to-r.html –
어떤 R 버전을 사용하고 있습니까? > = R 3.0.0? –