Ken*_*HBS 13
这个问题的答案有两个方面:
索引矩阵时如何解释NA?
在其中一个链接, 通过@alexis_laz提供,我发现如何了非常良好的结构解释TRUE,FALSE并NA索引矩阵时解释:
Logicalindices指出R要包含或排除的元素.你有三个选择:
TRUE,FALSE和NA它们用于表明是否应包括在该位置表示的指数.换一种说法:
Run Code Online (Sandbox Code Playgroud)TRUE == "Include the elment at this index" FALSE == "Do not include the element at this index" NA == "Return NA instead of this index" # loosely speaking例如:
Run Code Online (Sandbox Code Playgroud)x <- 1:6 x[ c(TRUE, FALSE, TRUE, NA, TRUE, FALSE)] # [1] 1 3 NA 5
一个重要的细节是隔离NA值的默认存储模式是逻辑(尝试typeof(NA)).您可以选择的存储方式NA使用NA_integer_,NA_real_(双),NA_complex_或NA_character_.
为什么5 NA而不只是1?
当索引的长度小于向量的长度时x,索引将重新开始,以x索引尚未编入索引的值.换句话说,R将自动"回收"指数:
(...)但是,适用标准回收规则.所以在前面的例子中,如果我们删除最后一个
FALSE,索引向量被循环,索引的第一个元素是TRUE,因此x现在包括第6个元素Run Code Online (Sandbox Code Playgroud)x <- 1:6 x[c(TRUE, FALSE, TRUE, NA, TRUE)] # [1] 1 3 NA 5 6
请回忆上一节中有关存储模式的详细信息.如果键入x[NA_integer_],则会发现不同的结果.
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |