2014-05-20 3 views
4

최적화 중에 문제가되는 중첩 된 모델 집합을 디버깅합니다. 내가 오류를 일으킨다 고 생각하는 것에 대해 0으로 만드는 과정에서 나는 rpois() 함수에서 비정상적인 행동을 보게되었다.rpois는 R에 큰 수단 (λ)을 사용하여 NA를 생성합니다.

평균 값이 매우 큰 경우 rpois()은 값 대신 NA을 반환합니다. 이 문제는 경고를 생성하지 않습니다. 재현 가능한 코드 세트는 아래를 참조하십시오.

이 내 질문은 두 배

입니다

> rpois(1,3000000000) 
[1] NA 
:
1 - 왜이 행동과
2 (?를 rpois 기능에 대한 정수의 크기에 최대 제한이)를 보여주는이 - 작업이 NA의 생성을 막기 위해 (심지어 평균 입력의 크기를 더 작은 값으로 제한하는 경우에도)?

나는 문제는 rpois 정수를 반환하고,이 값이 가능한 최대 정수 값보다 큰 경우 NA에 값을 (변환 윈도우 7

+0

왜 32 비트 R을 64 비트 OS에서 사용하고 있습니까? – Roland

답변

6

64 배에서 32 배 R 버전 3.0.2을 실행하고 .Machine$integer.max).

rpois(1,.Machine$integer.max/1.00001) 
## [1] 2147428954 
rpois(1,.Machine$integer.max/1) 
## [1] NA 

정규 근사 (평균 100보다 큰 경우는 일반적으로 매우 좋은!)이 경우에 굉장히 정확해야합니다 귀하의 평균이 (말) 0.999*.Machine$integer.max보다 큰 경우, 사용할 수있는 round(rnorm(1,mean=lambda,sd=sqrt(lambda)))