第一行为什么返回TRUE,而第三行返回1?我期望两行都返回1。第三行中那两个额外的括号的确切含义是什么?
!is.na(5) + !is.na(NA)
# TRUE
(!is.na(5)) + (!is.na(NA))
# 1
编辑:应该检查这些内容多次。最初的问题是在使用!is.na()
时出现的,尽管认为相同的问题也会发生在is.na()
中,但实际上并没有发生 :)
第一行为什么返回TRUE,而第三行返回1?我期望两行都返回1。第三行中那两个额外的括号的确切含义是什么?
!is.na(5) + !is.na(NA)
# TRUE
(!is.na(5)) + (!is.na(NA))
# 1
编辑:应该检查这些内容多次。最初的问题是在使用!is.na()
时出现的,尽管认为相同的问题也会发生在is.na()
中,但实际上并没有发生 :)
codetools::showTree(quote(!is.na(5) + !is.na(NA)))
翻译为:显示代码树形结构,其中包含以下代码 !is.na(5) + !is.na(NA)
。 - kohske
!TRUE + !FALSE
和(!TRUE) + (!FALSE)
。也就是说,这与is.na
没有关系。 - TooTone