首页 > 解决方案 > 如何在 dplyr 中使用 filter() 时删除一部分数据

问题描述

我有我的数据框p

问题:如何排除具有特定条件的过滤数据的子部分?解决方案必须在dplyr我试图学习这个包时。

我有

> head(p)
  studie id alder contra.pos ecs lnd n.fjernet n.sygdom uicc
1      2  1    47          0   0 0.0        22        1    4
2      2  2    50          0   0 0.0        61        2    4
3      2  3    61          0   0 0.0        50        1    4
4      2  4    83          0   1 0.1        47        3    4
5      2  5    38          0   0 0.0        30        1    3
6      2  6    44          0   0 0.0        60        0    4

> table(p$uicc)

  1   2   3   4 
321 231 248 720 

> table(p$studie)

  2   3   4   5   6 
221  40 641 464 154 

我怎样才能完全去除患有这种疾病的患者studie==4 & uicc %in% 1:3?对我来说,棘手的部分是在filter()-function

p %>% mutate(lnd = round(n.sygdom/n.fjernet,1),
             positive = ifelse(n.sygdom>0,1,0)) %>%
           filter(n.fjernet > 0,
                  lnd<100,
                  studie %in% 2:6,
                  !str_detect(studie==4 & uicc %in% 1:3)) %>%
           na.omit   

我也试过了... !(studie==4 & uicc %in% 1:3)...

先感谢您。

标签: rdataframedplyr

解决方案


怎么样

p %>% filter(studie != 4 & uicc == 4)

?


推荐阅读