在R中,当尝试对一个对象(例如data.frame或vector)进行子集化时,如果使用了太大的索引,则返回值为NA。这部分没问题。
但是,如果我们使用零作为索引,则结果不是NA,而是其他值。
例子:
a<-c(1,2,3)
a[4]
[1] NA
a[0]
numeric(0)
谁能启发我这个问题的原因?为什么索引零将返回此“ numeric(0)”?
在R输入语言定义说
特殊情况是零索引,它具有无效的影响:x [0]是一个空向量,否则在正索引或负索引中包含零的效果与忽略它们的效果相同。
这个约定可以追溯到R的前身S(请参阅Google书籍上的Venables和Ripley S编程)。
这没有回答“为什么?” (并且您不是唯一认为这是个坏主意的人),但它确实声明这是故意的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句