我的程序有时用R编写(并非总是如此,但几乎总是在模拟运行很多次时)显示此错误消息:
Error in if (sum.wt1y1 == 0 | sum.wt2y2 == 0) zn[k] <- 0 else zn[k] <- (sum.wt1y1 * :
missing value where TRUE/FALSE needed
Run Code Online (Sandbox Code Playgroud)
谁能解释一下这个错误信息的含义是什么?我无法找到错误的位置.最终输出是一个向量.现在在该向量中,一些值显示"值",但其余为0,0,0,...,0,当出现错误消息时.如果未显示错误消息,则向量的所有位置都将填充值(无零).
由于NA值通常会产生错误:
if (NA == 0) print('foo')
# Error in if (NA == 0) print("foo") :
# missing value where TRUE/FALSE needed
Run Code Online (Sandbox Code Playgroud)
解决方案是删除缺失值或包括检查它们:
if (!is.na(x) & x == 0) ...
Run Code Online (Sandbox Code Playgroud)