如果索引从 1 开始,为什么矩阵允许索引为零?

Qbi*_*bik 2 r matrix

matrix如果索引从 1 开始,为什么R中的类型允许索引为零?

> m = diag(10)
> dim(m[0,0])
[1] 0 0
Run Code Online (Sandbox Code Playgroud)

这是语言实现中的错误还是功能?

Ben*_*ker 5

这当然是故意的。从R 语言定义的相关部分

i[索引的整数向量] 的所有元素必须具有相同的符号。如果它们是正x数,则选择具有这些索引号的元素。如果i包含否定元素,则选择除指定元素之外的所有元素。
...

[使用整数来索引向量] 的一个特殊情况是零索引,它具有空效果:x[0]是一个空向量,否则在正或负索引中包含零具有与省略它们相同的效果。

您可以争论这是否是一个好主意(是否应该在索引的整数向量中包含零会引发错误?返回NA?其他东西?),但这将迅速下降到基于意见的领域。