我在R中有一个函数来计算if语句中的几个if语句。当我运行它时它返回一条错误消息(我只包括代码的sketh,因为实际的功能非常大):
if (X_star - x != 0){
if (w == 1){
#stuff
} else {
#stuff
if (X_star == 1){
#Stuff
} else {
#Stuff
}
#Stuff
}
Y = something
if (Y == 1){
#Stuff
} else {
#Stuff
}
} else {
if (Xmax - x !=0){
Y = something else
if (Y == 1){
#Stuff
} else {
#Stuff
}
} else {
#Stuff
}
}
错误:
Error in if (X_star - x != 0) { : missing value where TRUE/FALSE needed.
我读了一些其他人似乎有同样问题的帖子,但我找不到明确的答案。我已经盯着它看了一段时间但却找不到它有什么问题。这个函数位于for循环中,所以我不能真正使用矢量化ifelse。我很感激任何帮助。
干杯,
纳波
答案 0 :(得分:1)
首先学习如何调试程序。这是来自"?options"
的句子函数dump.frames和recover提供了允许事后调试的替代方法。请注意,这些需要指定为例如options(error = utils :: recover)
使用上面提到的选项功能,然后在错误上检查对象的内容,您可能会看到其中一个是NA。我在每个会话开始时都有这个函数调用来捕获这样的错误。