【问题标题】:Why does indexing with variable in vector produce NAs?为什么用向量中的变量进行索引会产生 NA?
【发布时间】:2021-06-02 06:33:25
【问题描述】:

我正在尝试削减一个字符向量,偶然发现了一个小问题: 我想排除某个位置 i + 1 之前的所有元素,我还想排除它的最后一个元素。 现在奇怪的是:如果我使用 i + 1 进行索引,它会在新向量的末尾产生 NA。如果我改用数字,它会按预期工作(参见示例):

# create character vector
nl <- c(letters[1:10], "excl")

# this produces NAs:
i = 5
nl[i+1:length(nl)-1]

# this works fine
nl[6:length(nl)-1]

谁能解释为什么会这样? 我在互联网上找不到解释,这对我来说真的没有意义。

提前致谢!

【问题讨论】:

    标签: r vector na


    【解决方案1】:

    是因为操作符优先,使用()来屏蔽

    nl[(i+1):length(nl)-1]
    #[1] "e" "f" "g" "h" "i" "j
    

    如果范围也应该包括减法

    nl[(i+1):(length(nl) - 1)]
    #[1] "f" "g" "h" "i" "j"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-23
      • 2015-12-31
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 2018-10-26
      相关资源
      最近更新 更多