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

R语言merge合并同列名数据框列拆分 如何得到2列目标表

问题原因

你用错了合并函数。merge()是横向关联合并函数,逻辑是按指定公共列的取值匹配,将两个表的列横向拼接。你的两个数据框mean_weight取值不同,非公共列sd_weight会被自动添加.x/.y后缀区分来源,匹配失败的位置填充NA,和你需要的「纵向堆叠行、保留原有2列结构」的需求完全不匹配。

正确操作方法

两个待合并数据框列数、列名完全一致时,直接做行绑定即可,两种常用方案可选:

  • 基础R原生方案(无需安装额外包):使用rbind()完成行拼接,之后设置对应行名
    Q3 <- rbind(with.arthritis, withOUT.arthritis)
    rownames(Q3) <- c("with.arthritis", "withOUT.arthritis")
    
  • dplyr包方案(适合多表批量合并、列顺序可能不一致的场景):使用bind_rows()合并,可直接生成数据来源标识,避免手动设置行名出错
    # 首次使用需先执行install.packages("dplyr")安装包
    library(dplyr)
    Q3 <- bind_rows(
      `with.arthritis` = with.arthritis,
      `withOUT.arthritis` = withOUT.arthritis,
      .id = "group"
    )
    # 如需把来源标识设为行名,追加执行以下代码
    Q3 <- column_to_rownames(Q3, var = "group")
    
最终输出效果

执行代码后得到的表格共2行2列,完全符合预期:

mean_weight sd_weight
with.arthritis         176.08  46.30651
withOUT.arthritis      183.04  49.81196

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:21:14