如何在R语言中根据word列的词频填充freq列?
在R语言中根据单词出现频率填充freq列
我有如下数据集,需要根据word列中单词的出现频率填充freq列。
原始数据集
# df word freq a um yeah I'm no a
期望结果
word freq a 2 um 1 yeah 1 I'm 1 no 1 a 2
方法一:基础R原生实现
无需额外安装包,用基础函数就能完成:
# 统计每个单词的出现次数 word_freq <- table(df$word) # 匹配每个单词对应的频率并赋值给freq列 df$freq <- word_freq[df$word]
方法二:tidyverse工具包实现
如果习惯使用tidyverse的管道式语法,用dplyr的分组统计更直观:
首先安装并加载工具包(仅首次使用需要安装):
install.packages("tidyverse") library(tidyverse)
然后处理数据:
df <- df %>% group_by(word) %>% mutate(freq = n()) %>% ungroup()
group_by(word)按单词分组,mutate(freq = n())计算每组的行数(即单词出现频率),最后ungroup()取消分组恢复数据结构。
内容的提问来源于stack exchange,提问作者aoooooiiiiiiiiiiiiiii
相关产品推荐
相关产品推荐

