You need to enable JavaScript to run this app. R语言统计标点符号绘图时如何移除双空格导致的多余空格计数
优惠活动
大模型
产品
解决方案
定价
更多

R语言统计标点符号绘图时如何移除双空格导致的多余空格计数

解决方案

问题原因

你现有代码的逻辑是先移除所有字母,再按空格拆分,处理后残留的空字符串(即你观察到的空格计数项)是连续空格拆分后生成的。同时当前逻辑还会统计到非目标标点,不符合你仅统计;、-、.、,四类标点的需求。

修正方案

推荐直接提取目标标点,完全避开空格问题,逻辑更简单高效,修正后代码如下:

# 提前加载依赖包
library(stringr)
library(dplyr)
library(ggplot2)

wekto<-c("Robot, robot; Nose, nose; Robot, robot; Toes, toes; Robot, robot - touch your nose. Robot, robot - touch your toes.")
stops <- function(text){
    # 仅提取指定的四类标点
    str_extract_all(text, "[;\\-.,]")[[1]] %>%
      table() %>%
      as.data.frame() %>%
      setNames(c("Punctuation","Count")) %>%
      ggplot(aes(x=Punctuation,y=Count)) +
      geom_col() +
      coord_flip()+
      theme_classic()+
      theme(axis.text.y = element_text(size = 17))
}

# 调用函数输出图表
stops(wekto)

代码说明

  • 正则表达式[;\\-.,]精准匹配你需要的四类标点,R语法里-在中括号内需要转义(加双反斜杠),避免被识别为范围运算符
  • 不需要额外处理空格,自然不会生成空格相关的计数项,也不会统计到其他无关符号

如果你想要在原有代码基础上修改,只需要在setNames之后加一步过滤空值即可:filter(Punctuation != ""),即可移除空格计数项。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 12:45:04