【发布时间】:2021-02-25 07:17:53
【问题描述】:
我已经进行了一些挖掘,但似乎找不到任何具体涉及输出返回原因的内容:
代码:c(0:5)[NA]
输出:
NA NA NA NA NA NA
任何帮助将不胜感激!
【问题讨论】:
-
请添加完整的代码、数据和预期输出。请参阅here 了解如何使问题变得更好。
我已经进行了一些挖掘,但似乎找不到任何具体涉及输出返回原因的内容:
代码:c(0:5)[NA]
输出:
NA NA NA NA NA NA
任何帮助将不胜感激!
【问题讨论】:
NA 是逻辑类型。
class(NA)
[1] "logical"
逻辑在 R 中有一个特殊的属性,称为向量循环。如果你用一个较小的子集对一个向量进行子集,它基本上会回收相同的值。
例子-
c(0:5)[c(TRUE, FALSE)] #returns
#[1] 0 2 4
#similarly
c(0:5)[c(FALSE, TRUE)] #returns
#[1] 1 3 5
这里也发生了同样的情况,逻辑 NA 值在整个长度中被回收(0:5 这里)并且你得到相同长度的 NA。
c(0:5)[NA]
[1] NA NA NA NA NA NA
它将为其他 NA 提供不同的输出。
c(0:5)[NA_integer_]
#[1] NA
c(0:5)[NA_real_]
#[1] NA
【讨论】: