无法理解R中if条件中的错误消息

Bla*_*aan 1 if-statement r

我的程序有时用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,当出现错误消息时.如果未显示错误消息,则向量的所有位置都将填充值(无零).

Jus*_*tin 8

由于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)