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)
我有一个任务,对于我的 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)