【发布时间】:2013-11-30 14:36:37
【问题描述】:
我正在尝试提取字段“var”等于 0 的数据行。
但我发现“NA”被视为0:
有 20 行 0 和 809 行“NA”。
数据框d共有81291行。
> length(d$var[d$var == "0"])
[1] 829
> length(d$var[d$var == 0])
[1] 829
以上829个值都包括0和“NA”
> length(d$var[d$var == "NA"])
[1] 809
> length(d$var[d$var == NA])
[1] 81291
为什么上面的代码给出了d的长度?
【问题讨论】:
-
没有。 NA 不被视为 0。发生的情况是,只要索引为 NA,“[”就会返回 NA。我认为这是 der·ri·ère 的痛苦,但它被 R 核心认为是一个特性。另外:
NA != 'NA'(没有值,即使是 NA,也等于 NA。)使用subset? -
@DWin 我认为子集点值得扩展答案。我自己没有调查过它的行为——所以我也很感兴趣。
标签: r na expression-evaluation