如何合并单个CSV文件的两列?R代码执行异常排查
问题原因
你用cbind()的方式是在原数据后追加新列,原来的第2、3列并不会自动被删除,所以查看头部时还是能看到这两列——代码其实已经生成了合并后的新列,只是没移除原列,看起来像没生效。
解决方案
如果你的需求是合并第2、3列为一列,同时移除原有的这两列,可以用以下两种方法:
方法一:先新增合并列,再删除原列
# 复制原数据到新对象 merged_data <- rw.data # 合并指定列到新列(sep可自定义分隔符,比如用","替换" ") merged_data$new_column <- paste(merged_data$fiveac, merged_data$fiveem, sep = " ") # 删除原来的两列(按列名删除) merged_data <- merged_data[, !names(merged_data) %in% c("fiveac", "fiveem")] # 或者按列索引删除第2、3列 # merged_data <- merged_data[, -c(2, 3)] # 保存结果 write.csv(merged_data, "merged.rw.data.csv", row.names = FALSE)
方法二:直接替换原列,一步完成
# 把第2列替换成两列合并后的内容 rw.data[, 2] <- paste(rw.data[, 2], rw.data[, 3], sep = " ") # 删除第3列 merged_data <- rw.data[, -3] # 保存结果 write.csv(merged_data, "merged.rw.data.csv", row.names = FALSE)
内容的提问来源于stack exchange,提问作者Lina
相关产品推荐
相关产品推荐

