为什么第一行返回TRUE,第三行返回1?我希望两行都返回1.第三行中额外两个括号的确切含义是什么?
!is.na(5) + !is.na(NA)
# TRUE
(!is.na(5)) + (!is.na(NA))
# 1
编辑:应该多次检查这些。最初的问题是!is.na()
,认为它是为is.na()
复制的。但它没有:)
答案 0 :(得分:21)
!
has a weird, counter-intuitive precedence in R.
您的第一个代码相当于
!(is.na(5) + !is.na(NA))
也就是说,!
的优先级低于+
。