如何仅按相同列名合并两个CSV或dataframe,保留首个数据集的列
实现方法
你可以通过以下两种常用方案实现需求:
方案1:使用dplyr包(代码更简洁)
bind_rows默认会自动对齐两个数据框的同名列,缺失列自动填充NA,你只需在合并后筛选保留第一个数据框的列即可:
# 加载包(未安装先执行 install.packages("dplyr")) library(dplyr) # 合并并筛选列 result <- bind_rows(First, Second) %>% select(all_of(colnames(First)))
方案2:纯base R实现(无需安装额外依赖包)
先给第二个数据框补全第一个数据框存在但自身缺失的列,再按列顺序合并即可:
# 补全缺失列,值设为NA Second[setdiff(colnames(First), colnames(Second))] <- NA # 按第一个数据框的列顺序合并 result <- rbind(First, Second[, colnames(First)])
两种方案输出的结果都和你需要的目标结构完全一致。
内容的提问来源于stack exchange,提问作者Yellow_truffle
相关产品推荐
相关产品推荐

