如何拼接数据框eligible_pmids列并转字符向量去重
处理逗号分隔PMID字符串并去重的解决方案
基础R实现
# 1. 拼接所有行的eligible_pmids字符串为单个长字符串 combined_pmid_str <- paste(test$eligible_pmids, collapse = ", ") # 2. 将长字符串拆分为字符向量 pmid_vec <- strsplit(combined_pmid_str, ",\\s+")[[1]] # 3. 去除向量中的重复元素 unique_pmids <- unique(pmid_vec) # 可选:查看前几个结果验证 head(unique_pmids)
步骤说明
- 拼接字符串:
paste()函数的collapse参数指定用,连接所有行的字符串,保证分隔格式统一。 - 拆分向量:
strsplit()使用正则表达式",\\s+"匹配逗号加任意数量空格,确保拆分后的每个元素都是纯净的PMID编号;[[1]]将拆分返回的列表转换为字符向量。 - 去重:
unique()直接对字符向量去重,保留唯一的PMID。
tidyverse风格实现(需加载tidyverse包)
如果习惯使用tidyverse工具链,可以用更简洁的管道式写法:
library(tidyverse) unique_pmids <- test %>% pull(eligible_pmids) %>% # 提取目标列 str_c(collapse = ", ") %>% # 拼接所有字符串 str_split(",\\s+") %>% # 拆分字符向量 pluck(1) %>% # 转换为向量 unique() # 去重
内容的提问来源于stack exchange,提问作者user25494
相关产品推荐
相关产品推荐

