r - 找到条件的对立面(使用 R tidyverse)以便将数据集拆分为 2
问题描述
我正在尝试将我的数据集(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" ))
如果有人可以帮忙?非常感谢
解决方案
anti_join
@MonJeanJean 建议的我方法应该有效。但如果它没有,这里有一点不同的方法,想法是创建一个索引列并排除你不需要的列(让人想起 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 行
推荐阅读
- amazon-web-services - 如何使用 AWS 将 var/www/html 的访问权限授予其他用户?
- winforms - 运行 Powershell 脚本以在后面显示没有 Powershell 屏幕的表单
- c# - C# 内存问题
- ios - 为什么 AudioKit 中的音序器不能播放我的鼓声,为什么音量这么低?
- docker - 在 docker-compose 中将环境变量设置为字符串数组
- twisted - Pip安装Twisted时出现如下错误如何解决?
- javascript - 如果时间到期,如何禁用按钮并更改颜色
- java - TestNG 有条件地运行测试几次
- elasticsearch - Elasticsearch 查询以非严格地从不同字段进行搜索
- python - 从 Python 中的 JSON 获取值