gpt4 book ai didi

r - 使用 R 和术语文档矩阵创建频率表

转载 作者:行者123 更新时间:2023-12-02 06:49:22 24 4
gpt4 key购买 nike

我创建了以下由一些电子邮件主题行组成的数据框。

 df <- data.frame(subject=c('Free ! Free! Free ! Clear Cover with New Phone',
'Offer ! Buy New phone and get earphone at 1000. Limited Offer!'))

我已经创建了一个来自上述数据框的常用词列表。我已将这些关键字添加到数据框并将它们虚拟编码为 0

 most_freq_words <- c('Free', 'New', 'Limited', 'Offer')



Subject Free New Limited Offer

'Free Free Free! Clear Cover with New Phone', 0 0 0 0
'Offer ! Buy New phone and get earphone at 0 0 0 0
1000. Limited Offer!'

我想获得电子邮件主题中单词的频率计数。输出应该如下

  Subject                                             Free New Limited Offer                                                    

'Free Free Free! Clear Cover with New Phone', 3 1 0 0
'Offer ! Buy New phone and get earphone at 0 1 1 2
1000. Limited Offer!'

我试过下面的代码

for (i in 1:length(most_freq_words)){
df[[most_freq_words[i]]] <- as.numeric(grepl(tolower(most_freq_words[i]),
tolower(df$subject)))}

然而,这表明该词是否出现在句子中。我需要上面给出的输出。我请求某人帮助我

最佳答案

这是 tidyverse 的另一个选项。我们使用 map 遍历 'most_freq_words',使用 str_count 从 'df' 的 'subject' 列获取它的计数,转换为 tibble , 从 'most_freq_words' 中设置列​​的名称并将列与原始数据集 'df' 绑定(bind)

library(tidyverse)
most_freq_words %>%
map(~ str_count(df$subject, .x) %>%
as_tibble %>%
set_names(.x)) %>%
bind_cols(df, .)
# subject Free New Limited Offer
#1 Free ! Free! Free ! Clear Cover with New Phone 3 1 0 0
#2 Offer ! Buy New phone and get earphone at 1000. Limited Offer! 0 1 1 2

关于r - 使用 R 和术语文档矩阵创建频率表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48821375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com