2014-02-22 3 views
2

tryCatch를 사용하여 p 값 목록을 생성하려고하는데, 행렬에 t 테스트에 대한 충분한 관찰이없는 행이 여러 개 있습니다. 그것은 확실히 오류 [내가 확인하는 메시지 ("오류") 라인을 넣어] 던졌습니다tryCatch가 내 변수를 반환하지 않는 것 같습니다.

pValues <- c() 
for(i in row.names(collapsed.gs.raw)){ 
    tryCatch({ 
    t <- t.test(as.numeric(collapsed.gs.raw[i,]) ~ group) 
    pValues <- c(pValues, t$p.value) 
    }, 
    error = function(err) { 
    pValues <- c(pValues, "NA") 
    message("Error") 
    return(pValues) 
    })} 

: 여기에 지금까지 생성 된 코드이다. 문제는 벡터 pValues에 "NA"가 없다는 것입니다.

미리 도움 주셔서 감사합니다.

답변

3

함수의 pvalues은 로컬 변수입니다. <<-으로이 문제를 해결할 수는 있지만 원하는 값 하나만 반환하고 함수 외부에 sapply으로 수집하는 것이 바람직합니다. 아마도 (테스트되지 않은) 무언가 :

pValues <- sapply(rownames(collapsed.gs.raw), function(i) { 
    tryCatch({ 
    t.test(as.numeric(collapsed.gs.raw[i,]) ~ group)$p.value 
    }, 
    error = function(err) { 
    message("Error") 
    return(NA) 
    }) 
}) 
+0

잔인한! 그것은 완벽하게 작동했고 완벽하게 이해합니다. 신속하고 훌륭한 답변을 해주신 @Aaron에게 감사드립니다! –

관련 문제