如何在 R 中对数据进行子集化:参与者只需要满足五个标准之一?

How to subset data in R: participant only needs to meet one of five criteria?

尽管阅读了此处的许多页面,但我仍然很难弄清楚如何在 R 中对数据集进行子集化。该集合包含来自 3000 多名参与者的信息。每个参与者都被问及五种不同的健康状况,并给出了二元答案(即 yes/no 糖尿病;yes/no 肥胖等)。我如何制作一个子集,其中包括只有一个条件的人?例如,这个新子集中的每个人都会患有肥胖症、糖尿病或高胆固醇,但 none 会患有两种或多种疾病。

谢谢!!

ETA:睡了一夜之后,我又看了一遍所有的东西(还有评论)。这是一些澄清以及我从那以后所做的事情。

示例数据 (mydata)(0 = 否,1 = 是)

Participant  HighCho  Diabetes  Obesity
1              1        1        0
2              0        1        1
3              1        0        0
4              0        0        0
5              0        1        0     

我希望我的子集结果仅​​包括满足三个条件中的 none 或三个条件之一的结果:

Participant  HighCho  Diabetes  Obesity 
3             1        0        0
4             0        0        0
5             0        1        0 

我写过:

new.data <- subset(mydata = (HighCho == 0 & Diabetes == 0 & Obesity==0) | HighCho == 1 | Diabetes == 1 | Obesity == 1)

我的问题是,即使我涵盖了所有没有任何条件的人,我仍然包括有不止一种条件的人。我想在我的 "or" 声明中,我只会包括那些只有三个条件之一(而不是两个)的人。关于我可能做错了什么的任何见解?

您可以使用apply函数来sum每个参与者拥有的条件数。

mydata[apply(mydata[, c('HighCho', 'Diabetes', 'Obesity')], 1, sum) %in% 0:1, ]