首页 > 解决方案 > 为什么在没有括号的情况下运行切片时返回 NA?

问题描述

考虑这个向量:

x <- c("A", "B", "C", "D")

当我们做一个普通的切片时,

x <- x[2:4]

它返回:

"B" "C" "D"

为什么我们执行这行代码时,返回的是NA?

x[1+1:4]
"B" "C" "D" NA 

但是,当我们在加号周围加上括号时,

x[(1+1):4]
[1] "B" "C" "D"

它返回正确的输出。

标签: r

解决方案


您正在使用两组不同的索引进行切片。

在第一种情况下1+1:4,您将生成一个从 1 到 4 的向量,1:4然后添加 1,因此2,3,4,5. 在您的向量中,第 5 个位置不存在,因此您得到一个NA.

在第二个向量中,您正在切片(1+1):4对应的位置2,3,4。这是初始向量中存在的所有元素,因此您具有相应的值


推荐阅读