求和的行为!is.na()结果

时间:2013-07-15 10:07:37

标签: r logical-operators na operator-precedence

为什么第一行返回TRUE,第三行返回1?我希望两行都返回1.第三行中额外两个括号的确切含义是什么?

!is.na(5) + !is.na(NA)
# TRUE
(!is.na(5)) + (!is.na(NA))
# 1

编辑:应该多次检查这些。最初的问题是!is.na(),认为它是为is.na()复制的。但它没有:)

1 个答案:

答案 0 :(得分:21)

! has a weird, counter-intuitive precedence in R.

您的第一个代码相当于

!(is.na(5) + !is.na(NA))

也就是说,!的优先级低于+

相关问题