用条件子集大数据帧

时间:2018-10-30 10:14:56

标签: r

我有以下数据集:

ID  s1  s2  s3
A   0.6 1   0.3
B   3   0.4 0.4
C   3   2   1
D   0   0.3 0.2
E   3   2   0.1

我想保留3个样本中至少两个样本的值> = 0.5的行

因此,新数据框将为:

ID  s1  s2  s3
A   0.6 1   0.3
C   3   2   1
E   3   2   0.1

预先感谢

1 个答案:

答案 0 :(得分:1)

你可以

df[rowSums(df[-1] > 0.5) >= 2, ]
#  ID  s1 s2  s3
#1  A 0.6  1 0.3
#3  C 3.0  2 1.0
#5  E 3.0  2 0.1

我们创建一个逻辑矩阵df[-1] > 0.5,并检查每行是否至少有两个值是TRUE

数据

df <- read.table(text="ID  s1  s2  s3
A   0.6 1   0.3
B   3   0.4 0.4
C   3   2   1
D   0   0.3 0.2
E   3   2   0.1", header = TRUE, stringsAsFactor = FALSE)