r - 如何将两个不同的 ID 协调为一个,然后应用于具有两个 ID 的 df,但在 R 中只计算一次主题?
问题描述
对于同一个主题(患者),我有两个不同的 ID。在另一个 ID 向量中,两个 ID 都在其中,表示同一患者。我如何只计算一次患者(按 ID1),而不是两个具有不同 ID 的不同患者?
ID1 ID2
11 12
13 14
15 16
向量
11,12,13,13,14,16
我只想按 ID1 计算唯一的患者,这样我就可以得到
x=11,13,15
谢谢!
解决方案
为每位患者创建一个唯一ID
编号,以长格式获取数据,以便两个 ID 位于同一列中,将其与不同值的向量选择向量值连接ID
。
library(dplyr)
df %>%
mutate(ID = row_number()) %>%
tidyr::pivot_longer(cols = c(ID1, ID2)) %>%
inner_join(tibble::enframe(vector), by = 'value') %>%
distinct(ID, .keep_all = TRUE) %>%
select(value)
# value
# <dbl>
#1 11
#2 13
#3 16
数据
df <- structure(list(ID1 = c(11L, 13L, 15L), ID2 = c(12L, 14L, 16L)),
class = "data.frame", row.names = c(NA, -3L))
vector <- c(11, 12, 13, 13, 14, 16)
推荐阅读
- swagger - Swagger:从枚举中取一个或多个值
- php - PSR-4 不自动加载类文件?
- javascript - HTML、CSS、JS 未运行
- c++ - 未找到 DirectX 头文件 (MinGW)
- single-sign-on - 如何将 SSO 用于 PWA?
- sql - 多个表列上的 SQL Server 索引
- firebase - Firebase 云消息传递数据消息是否需要 requestPermission?
- lotus-notes - IBM Notes 组合框选项即使在刷新时也不会更新
- sql - sql表触发器
- java - JavaFX:在多个 fxml 场景中使用单个变量