当索引超出向量/矩阵的维度时,R中的默认行为是返回NA。例如。
> a = as.matrix(1:10)
> a[11]
[1] NA
在许多情况下这非常不方便,因为代码一直运行会产生错误的结果,甚至不会发出警告。 有没有人知道是否可以在代码中更改此默认行为,以便在这些情况下抛出错误或警告而不是在索引超出向量/矩阵的维度时返回NA?
答案 0 :(得分:2)
一种解决方案是在使用[
索引矩阵时使用两个参数(row和col),这是更多" normal"与矩阵有关的事情。该用法将触发错误:
a[11, 1] <- NA
# Error in `[<-`(`*tmp*`, 11, 1, value = NA) : subscript out of bounds
答案 1 :(得分:0)
另一种方式,假设你的a[11]
是脚本或函数的一部分,就是进行自己的错误检查。例如,
for (j in 1:20 ) {
ifelse(j <= length(a), a[j], cat('index out of bounds') )
}