如何跳过错误并使while循环继续在R中工作?

时间:2015-10-21 09:36:43

标签: r

我使用while-loop在矩阵(3723 x 223)上运行ks-test。

在矩阵中,每个单元格都有NA或特定的数值。

大多数行都有足够数量的单元格来进行ks-test。

但是,有些行的数字或NA值太小,无法进行ks-test 这会终止我的while循环(当我的测试到达第1359行时)。

以下是我的while循环代码和错误消息。

while(x<3724){  
 results[x,1]=  
 ks.test(as.numeric(SW480ks[x,]), as.numeric(SW620ks[x,]))$p.value  
 x=x+1  
 }

Error in ks.test(as.numeric(SW480ks[x, ]), as.numeric(SW620ks[x, ])) :   
  'x' is not enough data  
In addition: There were 50 or more warnings (use warnings() to see the first 50)  

我希望在出现错误消息时让我的代码跳过有问题的行。

我想我需要使用if语句,但我不知道写。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

查看try()tryCatch()

while(x < 3724){  
  test <- try(ks.test(as.numeric(SW480ks[x, ]), as.numeric(SW620ks[x, ])))
  results[x, 1] <- ifelse(class(test) == "try-error", NA, test$p.value)
  x <- x + 1  
}