2014-06-04 8 views
2

최근에 R 패키지 nparcomp을 사용하고 있으며 범주간에 내 응답 변수의 중요한 차이를 테스트하는 데 사용했습니다.R 패키지 "nparcomp"의 데이터 세트 제한

nparcomp 함수는 큰 데이터 크기 (행 수> 5000)를 처리 할 수 ​​없다는 것을 알게되었습니다. dat 내 데이터 세트입니다 decade이 (10 개 개의 카테고리로) 내 요인,

a<-nparcomp(oc20_kgm2~ decade, data=dat, asy.method = "mult.t", 
      type = "Tukey",alternative = "two.sided", 
      plot.simci = TRUE, info = FALSE) 

summary(a) 

, oc20_kgm2 내 응답 변수입니다 : 예를 들어, 다음은 내 코드입니다. 내 원본 데이터 세트에는 약 15,000 개의 행/샘플이 있습니다. 나는 위의 코드를 실행하면 오류가 나타났다 :

Error in checkmvArgs(lower = lower, upper = upper, mean = delta, corr = corr, : 
    ‘lower’ not specified or contains NA 
In addition: There were 49 warnings (use warnings() to see them) 

그래서 나는 무작위로 내 원래 dat에서 5000 개 샘플을 선택해야 진단 할 수 있습니다. 위와 같은 코드를 실행하면 작동합니다. 또한 5,500 개의 샘플 또는 10,000 개의 샘플이 작동하지 않습니다.

제 질문은이 기능을 실행하기위한 샘플 크기 제한이 있습니까? 그리고 R에서 사용할 수있는 다른 테스트 함수/패키지가 있습니까? 주석을 읽은 후


수정 : n는, 각 요소의 크기 때문에 큰 값에 오버 플로우 정수에 취약 정수의 목록입니다 때문

traceback() 

4: stop(sQuote("lower"), " not specified or contains NA") 
3: checkmvArgs(lower = lower, upper = upper, mean = delta, corr = corr, 
     sigma = sigma) 
2: pmvt(lower = -abs(T[pp]), abs(T[pp]), corr = rho.bf, df = df.sw, 
     delta = rep(0, nc)) 
1: nparcomp(oc20_kgm2 ~ decade, data = dat2, asy.method = "mult.t", 
     type = "Tukey", alternative = "two.sided", plot.simci = TRUE, 
     info = FALSE) 

> warnings() 
Warning messages: 
1: In n[j] * n[w] * n[i] : NAs produced by integer overflow 
2: In n[i] * n[w] * n[j] : NAs produced by integer overflow 
3: In n[i] * n[v] * n[j] : NAs produced by integer overflow 
4: In cov2cor(cov.bf) : 
    diag(.) had 0 or NA entries; non-finite result is doubtful 
+0

오류가 발생하면'traceback()'의 출력을 게시 할 수 있습니까? 또한,'warnings()'에 다른 49 개의 에러가 무엇인지 알아 보았습니까? 마지막으로'debugonce (nparcomp)'를 사용하여 코드를 단계별로 실행하고 함수가 어떻게 실패하는지 살펴 보았습니까? – nograpes

답변

2

이 오류가 발생합니다. 그것을 해결하기 위해, R 프롬프트에서 소스 코드를 입력 nparcomp을 보려면

n <- as.numeric(sapply(samples, length)) 

n <- sapply(samples, length) 

에서 nparcomp의 소스 코드를 수정합니다.