R语言:统一ID格式(替换LNZ_为LNZ.)并合并数据集ID列
统一ID格式并合并R数据集
方法一:Base R 实现
先统一两个数据集的ID格式,再执行合并操作:
# 将df_1中ID的下划线替换为点 df_1$ID_1 <- gsub("LNZ_", "LNZ.", df_1$ID_1) # 将df_2中ID的下划线替换为点 df_2$ID_2 <- gsub("LNZ_", "LNZ.", df_2$ID_2) # 按ID合并数据集(all=TRUE保留所有行,可按需改为all.x/all.y只保留单侧数据) merged_df <- merge(df_1, df_2, by.x = "ID_1", by.y = "ID_2", all = TRUE)
方法二:Tidyverse 实现
借助dplyr和stringr包完成格式统一与合并:
library(dplyr) library(stringr) merged_df <- df_1 %>% # 统一df_1的ID格式 mutate(ID_1 = str_replace(ID_1, "LNZ_", "LNZ.")) %>% # 统一df_2的ID格式后合并 full_join(df_2 %>% mutate(ID_2 = str_replace(ID_2, "LNZ_", "LNZ.")), by = c("ID_1" = "ID_2"))
补充说明
gsub()(Base R)和str_replace()(tidyverse)均能精准匹配LNZ_格式的ID并替换为LNZ.,确保两个数据集的ID编码完全一致,避免合并时出现匹配失败。- 若仅需保留两个数据集共有的ID,可将合并逻辑改为
merge(..., all=FALSE)或inner_join()。
内容的提问来源于stack exchange,提问作者jdtrulson
相关产品推荐
相关产品推荐

