2014-04-15 4 views
0

Iam은 R을 사용하여 40000 행 및 4 열의 퇴비 인 구분 된 테이블의 입력을 사용하여 큰 숫자를 실행합니다.T 테스트가 실패했습니다 R

NormData3= NormData1[1:40000,1:5] 
for(i in 1:nrow(NormData3)) { 
g1=NormData3[i,2:3] 
g2=NormData3[i,4:5] 
p[i]=t.test(g1,g2,var.equal=TRUE)$p.value 
} 

: IAM은 t 시험, p 값을 구현하기 위해 노력하고 있지만, 전 (데이터가 본질적으로 일정하다)이고 오차가 내가 코드가 동일한 문제를 가지고 루프를 위해 사용되는 두 경우에 대해 적용 나는 그 문제가 뭔지 모르겠다 ??

+2

어떤 오류가 있습니까? 데이터 샘플을주세요. – bartektartanus

답변

2

소프트웨어가 의미있는 답을 계산할 수없는 상황을 인식하는 것이 좋습니다. 이 시점에서 두 가지 가능한 조치가 있습니다. (1) 유익한 오류로 중지하고 (2) 자동으로 NA를 반환하십시오.

반복 루프에서이 작업을 실행하는 경우 두 번째 출력이 필요합니다. 다음은 그 작은 함수입니다.

 my.t.test.p.value <- function(...) { 
    obj<-try(t.test(...), silent=TRUE) 
    if (is(obj, "try-error")) return(NA) else return(obj$p.value) 
} 

코드에서 t.test 대신이 함수를 사용하십시오. 이렇게하면 루프가 방해받지 않고 계속 진행됩니다.