【问题标题】:R: How can I delete rows if an element in a row satisfies certain characteristic?R:如果行中的元素满足某些特征,我如何删除行?
【发布时间】:2011-12-07 18:09:39
【问题描述】:

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

> 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

如果该行中的第 1 列元素是 2,我想删除行。最后我想要这个:

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

我该怎么做?

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

delete_list <- c(2,3)

最好的方法是什么?

提前谢谢你。

【问题讨论】:

标签: r delete-row


【解决方案1】:

随便用

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

这是因为

mm[,1] != 2

返回

[1]  TRUE FALSE  TRUE FALSE  TRUE

本质上,您正在使用这个布尔数组来选择要选择的行。

【讨论】:

    【解决方案2】:

    未测试...

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

    基本上是我认为你所追求的。

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

    【讨论】:

      猜你喜欢
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      相关资源
      最近更新 更多