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

如何使用R语言stringr包统计并提取出现频率最高的前10个词汇

错误原因
  • str_sort是stringr包中专门用于对字符串向量按字典序排序的函数,不支持对数值类统计结果按数值大小排序
  • 你传入的table(words)输出是带词汇名属性的频数值 contingency table,str_sort会强制将频数转为字符串后按字符顺序排序,和你需要的按频数降序排序的逻辑完全不符,因此无法得到正确结果。
正确实现方法

stringr的核心能力是字符串清洗、匹配、变换等操作,本身没有统计频数、按数值排序的相关功能,实际使用中我们通常会先通过stringr完成词汇预处理,再做高频词统计,完整示例如下:

# 加载依赖包
library(stringr)

# 步骤1:用stringr对原始词汇做清洗(可根据你的数据情况调整清洗规则)
clean_words <- words %>%
  str_to_lower() %>% # 统一转为小写,避免大小写不同导致同一词被统计为不同词汇
  str_remove_all("[[:punct:]]") %>% # 剔除词汇附带的标点符号
  str_trim() # 去除首尾多余空白字符

# 步骤2:统计前10高频词汇,输出格式和原base R代码完全一致
sort(table(clean_words), decreasing = TRUE)[1:10]

如果你需要完全匹配tidyverse的编码风格,也可以用以下写法:

library(stringr)
library(dplyr)
library(tibble)

words %>%
  # 可插入任意stringr清洗逻辑
  str_to_lower() %>%
  str_remove_all("[[:punct:]]") %>%
  str_trim() %>%
  # 统计排序取前10
  table() %>%
  as_tibble() %>%
  arrange(desc(n)) %>%
  slice_head(n = 10)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:18:02