如何在数据框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
相关产品推荐
相关产品推荐

