【问题标题】:Indexing integer vector with NA用 NA 索引整数向量
【发布时间】:2016-12-23 20:04:00
【问题描述】:

我无法理解这一点。我有一个长度为 5 的整数向量:

x <- 1:5

如果我用单个 NA 对其进行索引,则结果的长度为 5:

x[NA] 
# [1] NA NA NA NA NA

我的第一个想法是 R 检查 1-5 是否是 NA 但是

x <- c(NA, 2, 4)
x[NA] 
# NA NA NA.

所以这不是解决方案。我的第二种方法是 x[NA] 正在索引,但我不明白

  1. 为什么这给了我五个NA's
  2. NA 作为索引的含义。 x[1] 为您提供第一个值,但 x[NA] 的结果应该是什么?

【问题讨论】:

  • 你期望输出什么?
  • @zx8754:所以 R 检查 1 是否在位置 NA 但这是 NA,因为没有位置 NA。现在它转到下一个值 2 这里是同样的问题等等?
  • 你读过help("[")吗?

标签: r indexing subset na


【解决方案1】:

比较你的代码:

> x <- 1:5; x[NA] 
[1] NA NA NA NA NA

> x <- 1:5; x[NA_integer_] 
[1] NA

在第一种情况下,NA 是逻辑类型(class(NA) 显示),而在第二种情况下,它是一个整数。从?"["可以看出,在i合乎逻辑的情况下,被回收到x的长度:

仅用于[-indexing:i,j,...可以是逻辑向量,表示 要选择的元素/切片。如有必要,这些载体会被回收 匹配相应的范围。 i, j, ... 也可以是负数 整数,表示要从选择中删除的元素/切片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    相关资源
    最近更新 更多