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

如何在R中使用正则表达式拆分列标签并统计频率?

拆分字符串格式的标签列并统计出现频率

你的hashtags列是字符串形式的列表结构,需要先清理格式再拆分标签,下面提供两种实现方式:

方法一:使用tidyverse工具包(推荐)

tidyverse的dplyr和tidyr能更直观地完成数据清洗和拆分操作:

# 加载工具包
library(tidyverse)

# 清洗标签列并拆分到单独行
twts_clean <- twts %>%
  # 移除字符串中的方括号、单引号
  mutate(hashtags = str_remove_all(hashtags, "\\[|\\]|'") %>% 
           # 按逗号+可选空格拆分标签
           str_split(",\\s*")) %>%
  # 将每个标签拆分为独立行
  unnest(hashtags)

# 统计标签出现频率(按次数降序)
hashtag_freq <- twts_clean %>%
  count(hashtags, sort = TRUE)

# 查看结果
print(hashtag_freq)

步骤解释:

  • str_remove_all():清理掉标签字符串里的格式符号([]和'),只保留标签内容
  • str_split(",\\s*"):以逗号和后续可能的空格为分隔符,把每行的标签拆成列表
  • unnest():把列表中的每个标签展开成单独的行,让每个标签对应一条记录
  • count():自动统计每个标签的出现次数,sort=TRUE让结果按次数从多到少排列

方法二:基础R实现(无需额外包)

如果不想加载第三方包,可以用基础R函数完成:

# 第一步:清理标签字符串并拆分
hashtags_list <- strsplit(gsub("\\[|\\]|'", "", twts$hashtags), ",\\s*")

# 第二步:将所有标签合并为一个向量
all_hashtags <- unlist(hashtags_list)

# 第三步:统计频率并排序
hashtag_freq <- table(all_hashtags)
hashtag_freq_df <- as.data.frame(hashtag_freq) %>%
  arrange(desc(Freq))

# 查看结果
print(hashtag_freq_df)

步骤解释:

  • gsub():全局替换掉所有格式符号,得到纯标签组成的字符串
  • strsplit():拆分字符串得到标签列表
  • unlist():把列表展开为包含所有标签的一维向量
  • table():统计每个标签的出现次数,后续转成数据框并按次数降序排列

额外提示

如果需要忽略标签的大小写差异(比如避免区分Sinopharm和sinopharm),可以在拆分后统一转成小写:

# tidyverse方式中添加转小写步骤
twts_clean <- twts %>%
  mutate(hashtags = str_remove_all(hashtags, "\\[|\\]|'") %>% 
           str_split(",\\s*")) %>%
  unnest(hashtags) %>%
  mutate(hashtags = tolower(hashtags))

# 基础R方式中修改向量
all_hashtags <- tolower(unlist(hashtags_list))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:25:35