在子集化时允许零索引有什么意义?

时间:2015-03-02 16:37:55

标签: r subset

由于R向量索引从1开始,因此允许使用零进行索引的重点是什么:

rivers[0]
#numeric(0)

返回零长度向量。为什么不出错?这有用吗?

2 个答案:

答案 0 :(得分:8)

通常不会出现很多用例。我实际上在 package I'm developing for template based validations 的上下文中有一个。例如,如果我想创建iris数据框的模板,我可以使用:

iris[0, ]

制作(注意,显示str(iris[0, ])的输出):

'data.frame': 0 obs. of  5 variables:
 $ Sepal.Length: num 
 $ Sepal.Width : num 
 $ Petal.Length: num 
 $ Petal.Width : num 
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 

我基本上抽象了数据框的结构。我有所有列定义,但没有数据。

答案 1 :(得分:0)

因为那是语言定义specifies

  

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