为什么`as.logical(2)`评估为`TRUE`?

时间:2017-06-14 17:18:38

标签: r

我有调查数据,其中观察到一些缺失的代码,例如-9表示不答复,-8表示不适用,-7表示不知道,等等。 (实际上,这是一项设计不佳的调查)。 TRUE和FALSE编码为1和0.

我原本希望as.numeric('not_a_number')自动编码NA这样的值,其中" NAs由强制引入"错误,但事实并非如此。基本上只有0被编码为FALSE。当使用其他强制转换函数时,R通常足够聪明,可以识别缺少匹配并使其丢失,例如使用{{1}}

1 个答案:

答案 0 :(得分:3)

任何非零数字都为TRUE,因为对于所有位,只有零有0,以二进制表示数字。