在R中,当试图对对象进行子集时,例如data.frame或vector,如果使用的索引太大,返回值将为NA。这部分还可以。
但是如果我们使用零作为索引,结果不是NA而是其他东西。
示例:
a<-c(1,2,3)
a[4]
[1] NA
a[0]
numeric(0)
任何人都可以告诉我这个问题的原因吗?为什么索引零将返回这个“数字(0)”?
答案 0 :(得分:0)
一个特殊情况是零索引,它具有空效果:x [0]是空向量,否则在正或负索引中包含零具有与省略它们相同的效果。
这个约定可以追溯到R的前身S(参见Google books上的Venables和Ripley S Programming )。
这不回答“为什么?” (和你are not the only one who thinks this is a bad idea),但它明确表明这是故意的。