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

如何调整R语言代码让group_by分组后按类别单独展示Top5关键词

R语言按类别独立展示评论Top5关键词

现有代码可计算各产品类别评论的Top5关键词,但输出为合并列表,需调整为每个类别以独立表格展示。

原代码

# Group by category and count keyword frequencies
keyword_counts <- filtered_data %>%
  group_by(category, keyword) %>%
  summarise(n = n()) %>%
  arrange(desc(n))

# Find the top 5 keywords in each category
top_keywords_by_category <- keyword_counts %>%
  group_by(category) %>%
  top_n(5, wt = n) %>%
  ungroup()  # Ungroup the data

# Print the table
print(top_keywords_by_category)

调整方案

方法1:控制台基础打印

利用dplyr::group_walk遍历每个类别分组,逐个输出独立表格:

# 生成各类别Top5关键词数据框
keyword_counts <- filtered_data %>%
  group_by(category, keyword) %>%
  summarise(n = n(), .groups = "drop_last") %>%
  arrange(desc(n))

top_keywords_by_category <- keyword_counts %>%
  group_by(category) %>%
  top_n(5, wt = n) %>%
  ungroup()

# 按类别拆分并打印独立表格
top_keywords_by_category %>%
  group_by(category) %>%
  group_walk(~{
    # 打印类别标题
    cat("\nCategory:", unique(.x$category), "\n")
    # 输出当前类别的Top5关键词表格
    print(.x %>% select(keyword, n) %>% arrange(desc(n)), row.names = TRUE)
  })

方法2:美观格式化输出(适用于R Markdown)

配合knitr::kable生成规整的格式化表格:

library(knitr)

# 数据生成部分同方法1
top_keywords_by_category %>%
  group_by(category) %>%
  group_walk(~{
    cat("\n### Category:", unique(.x$category), "\n")
    print(kable(.x %>% select(keyword, n) %>% arrange(desc(n)), row.names = TRUE))
  })

可选优化:截断过长类别名称

若类别层级名称过长,可使用stringr包截断显示:

library(stringr)

top_keywords_by_category %>%
  group_by(category) %>%
  group_walk(~{
    cat("\nCategory:", str_trunc(unique(.x$category), width = 30, ellipsis = "..."), "\n")
    print(.x %>% select(keyword, n) %>% arrange(desc(n)), row.names = TRUE)
  })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:11:31