对于同一受试者(患者),我有两个不同的ID。在此另一个ID向量中,两个ID都位于其中,表示同一位患者。我如何只对患者计数一次(通过ID1),而不是对两个具有不同ID的不同患者进行计数?
ID1 ID2
11 12
13 14
15 16
向量
11,12,13,13,14,16
我只想按ID1计算唯一身份患者,这样我就可以
x=11,13,15
谢谢!
我想你可能需要这个
df %>% filter((ID1 %in% vector) | (ID2 %in% vector)) %>%
select(ID1)
ID1
1 11
2 13
3 15
在更好的样本上检查
df <- structure(list(ID1 = c(11L, 13L, 15L, 17L, 19L, 21L), ID2 = c(12L,
14L, 16L, 18L, 20L, 22L)), class = "data.frame", row.names = c(NA,
-6L)
> df
ID1 ID2
1 11 12
2 13 14
3 15 16
4 17 18
5 19 20
6 21 22
vector <- c(11, 12, 13, 13, 14, 16, 18, 18)
> df %>% filter((ID1 %in% vector) | (ID2 %in% vector)) %>% select(ID1)
ID1
1 11
2 13
3 15
4 17
通过稍微修改Ronak的代码,您可以获得相同的结果
df %>%
mutate(ID = row_number()) %>%
tidyr::pivot_longer(cols = c(ID1, ID2)) %>%
inner_join(tibble::enframe(vector), by = 'value') %>%
distinct(ID, .keep_all = T) %>%
select(ID, value) %>%
inner_join(df %>% mutate(ID = row_number()), by = 'ID') %>%
select(ID1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句