我试图将我的数据集(296行)一分为二,第一部分将有一些条件,另一部分只是数据集的其余部分不符合条件。
我这样做了,找到了第一部分的81行:
cardio = donnees %>%
select(`Nausées/vomissements`,Vertige,Nystagmus,`Ataxie:Démarche ébrieuse`,`Motif si pas HINTS`,
Alcool,Tabac,`atcd neuro`,Dyslipidémies,Diabète) %>%
filter(Alcool == "Yes" |
Tabac == "Yes"|
`atcd neuro` == "3" |
Dyslipidémies == "Yes"|
Diabète == "Yes") 然后我就简单地用"!“找到剩下的,但不幸的是我只得到了77行,而不是预期的215行,
donnees %>%
select(`Nausées/vomissements`,Vertige,Nystagmus,`Ataxie:Démarche ébrieuse`,`Motif si pas HINTS`,
Alcool,Tabac,`atcd neuro`,Dyslipidémies,Diabète) %>%
filter(!(Alcool == "Yes" |
Tabac == "Yes" |
`atcd neuro` == "3" |
Dyslipidémies == "Yes" |
Diabète == "Yes" ))如果有人能帮上忙?非常感谢
发布于 2021-07-02 02:47:03
您可以将==和|符号替换为!=和&,而不使用方括号
donnees %>%
select(`Nausées/vomissements`,Vertige,Nystagmus,`Ataxie:Démarche ébrieuse`,`Motif si pas HINTS`,
Alcool,Tabac,`atcd neuro`,Dyslipidémies,Diabète) %>%
filter(Alcool != "Yes" &
Tabac != "Yes" &
`atcd neuro` != "3" &
Dyslipidémies != "Yes" &
Diabète != "Yes" )编辑:可以使用anti-join函数:
cardio = donnees %>%
select(`Nausées/vomissements`,Vertige,Nystagmus,`Ataxie:Démarche ébrieuse`,`Motif si pas HINTS`,
Alcool,Tabac,`atcd neuro`,Dyslipidémies,Diabète) %>%
filter(Alcool == "Yes" |
Tabac == "Yes"|
`atcd neuro` == "3" |
Dyslipidémies == "Yes"|
Diabète == "Yes")
others <- dplyr::anti_join(donnees, cardio)发布于 2021-07-02 03:02:26
@MonJeanJean建议的I anti_join方法应该有效。但如果它不需要,这里有一点不同的方法,想法是创建一个索引列,并排除任何你不需要的(让人想起mysql的日子)。
donnees$index = 1:nrow(donnees)
cardio = donnees %>%
select(`Nausées/vomissements`,Vertige,Nystagmus,`Ataxie:Démarche ébrieuse`,`Motif si pas HINTS`,
Alcool,Tabac,`atcd neuro`,Dyslipidémies,Diabète, index) %>%
filter(Alcool == "Yes" |
Tabac == "Yes"|
`atcd neuro` == "3" |
Dyslipidémies == "Yes"|
Diabète == "Yes")
cardio_required = cardio[-index, ]这将给您215行
https://stackoverflow.com/questions/68215464
复制相似问题