r - 为什么在没有括号的情况下运行切片时返回 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"
它返回正确的输出。
解决方案
您正在使用两组不同的索引进行切片。
在第一种情况下1+1:4
,您将生成一个从 1 到 4 的向量,1:4
然后添加 1,因此2,3,4,5
. 在您的向量中,第 5 个位置不存在,因此您得到一个NA
.
在第二个向量中,您正在切片(1+1):4
对应的位置2,3,4
。这是初始向量中存在的所有元素,因此您具有相应的值
推荐阅读
- linux - 如何杀死端口节点 env 正在使用
- javascript - java脚本中的“无法设置null的属性'onclick'”
- sql-server - 具有多项选择的存储过程 - 与客户端工具的交互?
- python - 将灰度图像转换为numpy数组
- c++ - nullptr 与零相同吗?
- php - preg_match 可以被破坏吗?/<(\w+)>/ $match[0] 中的结果为空
- javascript - 如何从 json 对象渲染反应组件?
- c - 当数据类型和返回类型从 int 更改为 float 或 double 时行列式函数中的分段错误
- android - 如何关闭 TwilightManager 日志记录
- html - Jumbotron 并非始终如一