You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:在R中合并行数不同的多个数据框的方法

解决数据框按指定列合并(行数不同时)的问题

问题原因

cbind()是按位置进行列绑定,要求两个数据框的行数必须完全一致。你的Book1有9行,Book2仅5行,行数不匹配导致报错。你实际需要的是按共同列Row Labels进行匹配合并,而非简单的位置绑定。

解决方案

以下两种方法均可实现按Row Labels匹配合并,缺失值自动填充为NA:

方法1:使用base R原生函数merge()

# 左连接:保留Book1的所有行,Book2无匹配的行填充NA
merged_df <- merge(Book1, Book2, by = "Row Labels", all.x = TRUE)

# 全连接:保留两个数据框的所有行,双方无匹配的位置均填充NA
# merged_df <- merge(Book1, Book2, by = "Row Labels", all = TRUE)

方法2:使用tidyverse生态的dplyr包

先加载依赖包,再执行合并:

library(dplyr)

# 左连接:保留Book1所有行
merged_df <- Book1 %>% 
  left_join(Book2, by = "Row Labels")

# 全连接:保留两个数据框所有行
# merged_df <- Book1 %>% 
#   full_join(Book2, by = "Row Labels")

结果说明

运行上述代码后,merged_df会以Row Labels为匹配键,将两个数据框的列合并,Book2中没有对应日期的行,其X6-X9列会自动填充为NA,完全符合你的需求。

内容的提问来源于stack exchange,提问作者user20203146

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:45:29