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

使用R绘制CSV数据直方图时出现重复列,如何合并?

问题原因与解决方法

为什么会出现重复列?

看似相同的类别(比如“chat rooms”“tip”)被ggplot当成不同类别,核心原因是这些字符串存在隐藏差异:

  • 前后有看不见的半角/全角空格
  • 字符串中间有多余空格
  • 大小写不一致(比如“Tip”和“tip”)
  • 包含换行符或其他不可见控制字符

Excel里直接复制覆盖没法清除这些隐藏内容,所以读入R后还是会被识别为不同的x轴类别。

解决步骤

1. 先确认问题所在

在R里运行以下代码,查看platform列的所有唯一值及字符长度,快速定位差异:

# 查看所有唯一值
unique(data$platform)
# 查看每个唯一值的字符长度
sapply(unique(data$platform), nchar)

2. 清理字符串

根据检查结果,用以下方法统一处理:

  • 去除前后空格:
data$platform <- trimws(data$platform)
  • 统一大小写(比如全部转小写):
data$platform <- tolower(data$platform)
  • 去除中间多余空格(把多个空格合并为一个):
    先安装stringr包(未安装时执行):
install.packages("stringr")

再运行清理代码:

library(stringr)
data$platform <- str_squish(data$platform)
  • 转换全角字符为半角(存在全角空格/字符时使用):
    先安装stringi包(未安装时执行):
install.packages("stringi")

再运行转换代码:

library(stringi)
data$platform <- stri_trans_general(data$platform, "Fullwidth-Halfwidth")

3. 重新绘图

完成字符串清理后,再次执行你原来的ggplot代码,重复的类别就会合并为同一列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 21:27:10