如何使用R中的循环为多个条件子集矩阵?

时间:2018-12-19 00:03:04

标签: r

示例矩阵(输入) enter image description here

  Species   PH  PNH
    A   1   10
    B   2   11
    C   3   12
    D   4   13
    E   5   14
    F   6   15
    G   7   16
    H   8   17
    I   9   18

我想使用多个条件集对R中的矩阵进行子集化-

Subset 1 for Condition 1: PH >= 5 and PNH >= 15
Subset 2 for Condition 2: PH >= 3 and PNH >= 13

S1<-subset(Input, Input$PH >= 5 & Input$PNH >= 15)
S2<-subset(Input, Input$PH >= 3 & Input$PNH >= 13)

对于所有子集(S1和S2)的每一列(PH和PNH),我必须计算香农多样性-

S1_shannon<-diversity(S1, 2, index="shannon")
S2_shannon<-diversity(S2, 2, index="shannon")

所以我的问题是“如何如示例所示在循环中为多个条件子集矩阵?” 这样我就可以使用生成的子集来计算多样性。 我将感谢社区的任何帮助。 谢谢

1 个答案:

答案 0 :(得分:0)

您可以轻松地这样子集:

sub_1<-df %>% 
  filter(PH>=5,PNH>=15)
sub_2<-df %>% 
       filter(PH>=3,PNH>=13)

我不知道shannon diversity. 假设您首先将其设置为data.frame