我目前正在为学校的一个项目运行方差分析,该项目有大量可能的运行(1400 次左右),但其中一些无法在 R 中运行方差分析。我编写了一个脚本来运行所有方差分析,但其中一些不会运行,Rout 文件给了我
contrasts<-
中的错误(*tmp*
,值=“对照.治疗”):
对比只能应用于具有 2 个或更多级别的因素
调用:aov ... model.matrix -> model.matrix.default ->对比度<-
执行停止
有没有办法编写脚本,让 R 在出现错误的情况下继续执行脚本?
我的整个脚本,除了文件加载、附加、创建接收器、库加载等之外......
ss107927468.model<-aov(Race.5~ss107927468, data=snp1)
summary(ss107927468.model)
如有任何帮助,我们将不胜感激。
最佳答案
查看函数 try()
及其帮助页面 (?try
)。您将 R 表达式包装在 try()
调用中,如果成功,则生成的对象将包含(在本例中)拟合的模型。如果失败,则返回一个具有类 "try-error"
的对象。这使您可以轻松检查哪些模型有效,哪些无效。
您可以进行测试来决定是打印模型摘要还是仅打印失败消息,例如:
ss107927468.model <- try(aov(Race.5~ss107927468, data=snp1))
if(isTRUE(all.equal(class(ss107927468.model), "try-error"))) {
writeLines("Model failed")
} else {
summary(ss107927468.model)
}
关于r - 有没有办法让 R 脚本在收到错误消息后继续执行而不是停止执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4359310/