首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找到条件的对立面(使用R tidyverse),以便将数据集拆分为2个

找到条件的对立面(使用R tidyverse),以便将数据集拆分为2个
EN

Stack Overflow用户
提问于 2021-07-02 02:44:56
回答 2查看 34关注 0票数 2

我试图将我的数据集(296行)一分为二,第一部分将有一些条件,另一部分只是数据集的其余部分不符合条件。

我这样做了,找到了第一部分的81行:

代码语言:javascript
复制
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行,

代码语言:javascript
复制
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" ))

如果有人能帮上忙?非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-02 02:47:03

您可以将==|符号替换为!=&,而不使用方括号

代码语言:javascript
复制
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函数:

代码语言:javascript
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2021-07-02 03:02:26

@MonJeanJean建议的I anti_join方法应该有效。但如果它不需要,这里有一点不同的方法,想法是创建一个索引列,并排除任何你不需要的(让人想起mysql的日子)。

代码语言:javascript
复制
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行

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68215464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档