2017-07-19 2 views
1

J'ai un grand ensemble de données de deux groupes. Je veux le comparer à l'aide d'un t.test et obtenir une liste des p.values ​​pour toutes les colonnes commençant par F_, mais à cause des données dans certaines colonnes, quand j'utiliser mon code:Comment obtenir des valeurs NA au lieu d'une erreur "les données sont essentiellement constantes" dans t.test dans R

TP_FN_ttest <- Map(t.test, x = TP[,grepl(paste0("^F_"),colnames(TP))], 
          y = FN[,grepl(paste0("^F_"),colnames(FN))]) 
TP_FN_ttest.pval <- as.data.frame(sapply(TP_FN_ttest, '[[', 'p.value')) 

Je reçois une erreur:

Error in t.test.default(x = dots[[1L]][[508L]], y = dots[[2L]][[508L]]) : 
data are essentially constant 

y at-il un moyen d'obtenir une liste de p.values ​​et obtenir NA de chaque fois que le test ne peut pas être appliqué au lieu d'obtenir une erreur?

Répondre

2

Vous pouvez utiliser un bloc catch try comme ceci:

tryCatch({ 
    ttest() 
}, error = { 
    somethingElse() 
})