R:如果一行中的元素满足某些特征,我该如何删除行?

时间:2011-12-07 18:09:40

标签: r delete-row

如果该行中的单元格满足某个特征,我试图找出删除矩阵行的方法。例如:

> mm <- matrix(c(1,2,3,2,3,4,1,2,3,4),5,2)
> mm
     [,1] [,2]
[1,]    1    4
[2,]    2    1
[3,]    3    2
[4,]    2    3
[5,]    3    4

如果该行中的第一列元素为2,我想删除行。最后我想要这样:

   [,1] [,2]
[1,]    1    4
[2,]    3    2
[3,]    3    4

我怎么能这样做?

如果不是删除第一个列元素为2的所有行,而是删除第一列元素对应于列表中包含的一组数字的行,那么更通用的方法呢?例如

delete_list <- c(2,3)

这样做的最佳方式是什么?

提前谢谢你。

2 个答案:

答案 0 :(得分:14)

只需使用

mm2 <- mm[mm[,1]!=2,]

这是因为

mm[,1] != 2

返回

[1]  TRUE FALSE  TRUE FALSE  TRUE

基本上你使用这个布尔数组来选择要选择的行。

答案 1 :(得分:2)

未经测试......

newmat <- mm[mm[,1]!=2,] 

基本上就是我认为你想要的。

编辑:该死,忍者一分钟!