根据符合严格标准的灵活列组合选择行的子集

时间:2013-11-01 20:35:46

标签: r dataframe subset threshold

我需要使用 R 帮助解决数据子集问题。这是数据框的一部分:

df <- read.table(text="
Name    C1      C2      C3      C4      C5
Bill    0.006   0.003   0       0.002   0
Frank   0       0.333   0.23    0.12    0
Ted     0.567   0.011   0.001   0.002   0
Jimmy   0.001   0.003   0.001   0.002   0
Sam     0.002   0.002   0.32    0.45    0.002", header=T)

我想要做的是创建一个新数据框,其中包含第2列到第6列中的值小于.05的那些行的子集。

诀窍在于我想设置一个灵活的标准,这样在任何特定的行中,只有5个值中的4个需要&lt; 0.05。它可以是5个值中的任意4个,并且必须能够在行之间有所不同。

因此,例如,比尔和特德会满足这个标准,但萨姆并不愿意。

我尝试过各种应用函数,但这些只适用于完整的行数据。我需要某种条件语句来单独评估每一行。

我被困在怎么办。

1 个答案:

答案 0 :(得分:2)

这就是你想要的吗?

> df[rowSums(df[,2:6]<0.05)>=4,]
   Name    C1    C2    C3    C4 C5
1  Bill 0.006 0.003 0.000 0.002  0
3   Ted 0.567 0.011 0.001 0.002  0
4 Jimmy 0.001 0.003 0.001 0.002  0