是否使用正式支持的[-0,]删除R数据框中的所有行?

时间:2015-05-14 15:14:50

标签: r

我发现我可以通过使用方括号函数进行子集化并使用-0作为行索引来删除R数据帧的所有行。但是,我还没有找到任何文件说这是一种官方行为,我可以指望将来在那里。这是一个官方功能,我可以放心地使用它,以期在将来的版本中继续以这种方式运行吗?

> df <- data.frame(c1=c(1,2,3),c2=c(2,3,4), c3=c(4,5,6))
> df
  c1 c2 c3
1  1  2  4
2  2  3  5
3  3  4  6  
> df[-0,]
[1] c1 c2 c3
<0 rows> (or 0-length row.names)

1 个答案:

答案 0 :(得分:3)

让我们查看文档。

help("[.data.frame")说(强调我的):

  

当[和[[用于两个指数(x [i,j]和x [[i,j]])时   就像索引矩阵一样[...]。请注意,对于每个选定的列,   xj说,通常(如果它不是矩阵),结果列   将是xj [i],因此依赖于相应的[方法,请参阅   示例部分。

下一站是help("["),它没有说明使用0作为索引,但指向“R语言定义”手册。

There我们读过(强调我的):

  

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

总结:

由于记录了此行为,您可以依赖DF[0,]返回带有空列向量的data.frame。