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

如何在数据框SA中合并第3、4列且不生成新列?

合并数据框两列(不创建新列)的正确写法

你的unite函数用法有误,以下是两种可行的解决方案:

方案一:使用dplyr的unite函数覆盖原列

unite的正确用法是指定列的位置或名称,通过覆盖原列名来实现不新增列的效果:

library(dplyr)
# 合并第3、4列,结果覆盖第3列,同时移除第4列
SA <- unite(SA, col = names(SA)[3], c(3, 4), sep = "_", remove = TRUE)
  • col = names(SA)[3]:指定合并后的列使用原第3列的名称,替换掉原第3列
  • c(3,4):选择要合并的第3、4列
  • sep = "_":设置合并的分隔符,可根据需求修改
  • remove = TRUE:合并后自动移除原第4列

方案二:Base R原生方法(无需额外包)

直接通过列赋值和删除操作实现:

# 合并第3、4列内容到第3列
SA[, 3] <- paste(SA[, 3], SA[, 4], sep = "_")
# 删除第4列
SA <- SA[, -4]

原代码问题说明

你之前写的SA = unite(SA, c(SA[,3] , SA[,4]))错误在于:unite的第二个参数需要传入列的选择器(列名、位置索引或tidyselect语法),而不是直接传入列的实际值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:07:04