我有以下数据集:
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
预先感谢
答案 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)