我使用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语句,但我不知道写。
提前感谢您的帮助。
答案 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
}