过滤数据框有两个条件列?

时间:2015-12-21 20:32:23

标签: r subset

我有这样的数据集,

S.No.   Counts  No.rep  Fram
1   3   4   UNC84A
2   10  4   UNC84A
3   7   4   UNC84A
4   10.3    4   UNC84A
5   7   1   NTUD19
6   181 3   ALR6IP4
7   7   3   ALR6IP4
8   21  3   ALR6IP4

我想过滤“如果No.rep> = 3”,则选择具有“Counts> = 10”的列。此外,当Norere< 3,我需要有Counts< 10也是。

这是我要求的输出

S.No.   Counts  No.rep  Fram
2   10  4   UNC84A
4   10.3    4   UNC84A
5   7   1   NTUD19
6   181 3   ALR6IP4
8   21  3   ALR6IP4

1 个答案:

答案 0 :(得分:3)

您可以尝试:

df[df["No.rep"] >= 3 & df["Counts"] >= 10,]
S.No. Counts No.rep    Fram
    2   10.0      4  UNC84A
    4   10.3      4  UNC84A
    6  181.0      3 ALR6IP4
    8   21.0      3 ALR6IP4

编辑:

你想要这样的OR条件:

df[(df["No.rep"] >= 3 & df["Counts"] >= 10) | (df["No.rep"] < 3 & df["Counts"] < 10),]

  S.No. Counts No.rep    Fram
      2   10.0      4  UNC84A
      4   10.3      4  UNC84A
      5    7.0      1  NTUD19
      6  181.0      3 ALR6IP4
      8   21.0      3 ALR6IP4