我需要使用 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个,并且必须能够在行之间有所不同。
因此,例如,比尔和特德会满足这个标准,但萨姆并不愿意。
我尝试过各种应用函数,但这些只适用于完整的行数据。我需要某种条件语句来单独评估每一行。
我被困在怎么办。
答案 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