如何在R或PowerBI中提取调查表格各列的高频词汇?
在R或PowerBI中提取多列最常见词汇的方法
R语言实现
基础R循环法
- 假设你的数据框为
df,包含多个类似Opinion about Power Plant的文本列 - 定义函数提取单列最常见词汇,再批量应用到目标列:
# 定义获取单列最常见词汇的函数 get_most_common <- function(col) { freq_table <- table(col) names(freq_table)[which.max(freq_table)] } # 筛选出所有包含"Opinion"的目标列(可根据实际列名调整筛选规则) target_cols <- grep("Opinion", names(df), value = TRUE) # 批量计算每列最常见词汇 most_common_list <- sapply(df[target_cols], get_most_common) # 转换为数据框,方便查看结果 result_df <- data.frame( 列名 = names(most_common_list), 最常见词汇 = unname(most_common_list), stringsAsFactors = FALSE ) print(result_df)
dplyr+tidyr简洁法
用tidyverse工具链更高效处理:
library(dplyr) library(tidyr) df %>% select(contains("Opinion")) %>% # 选择所有目标列 pivot_longer(everything(), names_to = "列名", values_to = "词汇") %>% group_by(列名, 词汇) %>% count(sort = TRUE) %>% # 按分组计数并排序 slice(1) %>% # 取每组计数最高的行 ungroup() %>% select(列名, 最常见词汇 = 词汇)
PowerBI实现
DAX单列处理法
针对单个列(如Opinion about Power Plant),新建计算列:
最常见词汇 = VAR 词汇计数 = COUNTROWS(FILTER('表格', '表格'[Opinion about Power Plant] = EARLIER('表格'[Opinion about Power Plant]))) RETURN MAXX(FILTER('表格', 词汇计数 = MAXX('表格', 词汇计数)), '表格'[Opinion about Power Plant])
如需处理多列,重复此步骤修改列名即可。
Power Query批量处理法
适合一次性处理所有目标列:
- 进入Power Query编辑器,加载你的调查表格数据
- 按住Ctrl选中所有类似
Opinion about Power Plant的文本列 - 点击「转换」选项卡 → 「分组依据」,选择「高级」模式:
- 添加分组依据:每个选中的列名
- 新列名设为
计数,操作选择「行计数」
- 对每个分组后的列,筛选出
计数最大的行,提取对应的词汇内容 - 整理结果并加载回PowerBI,即可得到每列的最常见词汇
内容的提问来源于stack exchange,提问作者Diogo Bichon
相关产品推荐
相关产品推荐

