R计算数据框列中自定义词典的频率但将它们分组

R Count Frequency of Custom Dictionary in a Dataframe Column but Group them

我有一个任务,对于我的 R 知识来说太复杂了。 我有一个带有推文数据的数据框,包括一个由用户名、推文数据和推文内容组成的列。 它看起来像这样: Datastructure

我有这样的词的字典:

dict <- c("one", "two", "eleven")

我想统计他们推文中使用的词的频率,但我想按年份和名字对他们进行分组。

我用这个来计算频率:

freq_auth <- tweetsanalysis1 %>% mutate(authority_dic = str_c(str_extract(text, str_c(authority_dic, collapse = '|')))) %>% count(authority_dic, name = 'freq_word') %>% arrange(desc(freq_word))

它就像它应该的那样工作:

Output

但它对所有姓名和日期都有效。我如何计算每个不同名称的频率并按年份拆分?我想分析每个名字的词频,然后将推文的名称和日期添加到输出中。

也许在一年内将数据框按每个名字切成小块,然后运行对每个名字进行分析?我的数据集包含 30k 个观察值和 200 多个个人名称,因此这会花费很多时间。

我希望我能表达我的观点。如果没有,请问我。 :) 如果有人能帮助我,我将不胜感激! 提前致谢。

尝试 group_by()summarise(),然后您可以 spread() 为每年创建一个列。

看看这是否适合您:

freq_auth <- tweetsanalysis1 %>%
        mutate(authority_dic =str_c(str_extract(text, str_c(authority_dic, collapse = '|')))) %>%
        group_by(authority_dic, year, user_username) %>%
        summarise(freq_word = n()) %>% 
        arrange(desc(freq_word)) %>%
        spread(year, freq_word)