如何在R中使用AACT数据库筛选TP53相关研究的facility_investigators列表
解决方案
核心逻辑是AACT数据库的studies表和facility_investigators表通过共有字段nct_id(临床试验唯一编号)关联,可直接在数据库侧完成关联过滤,避免全量拉取数据占用资源。
完整实现代码
library(dplyr) library(RPostgreSQL) # 建立AACT数据库连接 aact <- src_postgres( dbname = "aact", host = "aact-db.ctti-clinicaltrials.org", user = "aact", password = "aact" ) # 关联两个表,直接过滤得到TP53相关研究的研究者列表 tp53_investigators <- tbl(aact, "studies") %>% # 筛选TP53相关研究,可按需添加更多筛选条件(如brief_title等) filter(official_title %like% "%TP53%") %>% # 通过nct_id关联研究者表,保留匹配到的研究者信息 inner_join(tbl(aact, "facility_investigators"), by = "nct_id") %>% # 按需选择需要保留的字段,这里仅示例常用字段,可自行调整 select(nct_id, official_title, facility_name, investigator_role, first_name, middle_name, last_name, degrees) %>% # 将结果拉取到本地R环境 collect()
关键说明
- 关联时使用
inner_join可确保仅保留同时存在于TP53研究列表和研究者表中的记录,若需要保留无研究者信息的TP53研究可替换为left_join - 筛选条件可按需扩展,例如增加
brief_title %like% "%TP53%"可以扩大匹配范围,覆盖摘要标题中含TP53的研究 - 代码中
select步骤仅保留常用字段,可根据需求删除或新增字段,也可直接去掉select步骤返回全量字段
内容的提问来源于stack exchange,提问作者BR27
相关产品推荐
相关产品推荐

