【问题标题】:R subsetting data according to non zeros in rowR根据行中的非零对数据进行子集化
【发布时间】:2013-10-10 11:25:12
【问题描述】:

我有一个这样的数据集:

     1    2    3    4    5

1    1    0    0    0    0

2    1    0    0    2    0

3    0    0    0    1    5

4    2    0    0    0    0

我想对具有多个非零列的行进行子集化(表示第 2,3 行)

我知道它必须类似于 dataset[... dataset ...] 但我不知道如何在不使用 for 循环的情况下访问行

【问题讨论】:

    标签: r matrix subset


    【解决方案1】:

    你真的只需要rowSums。假设您的数据集称为“mydf”,请尝试:

    > mydf[rowSums(mydf != 0) > 1, ]
      X1 X2 X3 X4 X5
    2  1  0  0  2  0
    3  0  0  0  1  5
    

    这里,rowSums(mydf != 0) 将返回每行中有多少个值大于零的向量。然后,添加我们的条件> 1 将创建一个逻辑向量,该向量可用于对我们想要的行进行子集化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 2021-08-22
      • 2015-04-13
      • 2020-10-17
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多