【发布时间】:2020-07-12 21:00:02
【问题描述】:
df1(1,500 行)显示问题、正确回答的百分比和问题尝试次数:
qtitle avg_correct attempts
"Asthma and exercise, question 1" 54.32 893
"COVID-19 and ventilators, q 3" 23.60 143
"Pedestrian vs. car MVCs" 74.19 227
"Hemophilia and monoclonal Abs" 34.56 78
"COVID-19 and droplets" 83.21 234
使用 tidytext 库,识别出 qtitle 列中出现频率最高的单词并按频率计数,以创建第二个数据帧(df2,320 行)。
word n
COVID-19 68
Trauma 57
Hemophilia 46
我想使用 df2 的单词 col 中的每个条目来匹配 df1 (qtitle) 中的问题标题中的单词,并找到 avg_correct 的平均值、尝试的总和,并包含搜索词的频率 (n in df2).[即通过自定义函数将df2映射到df1]
word avg_correct attempts count(n)
COVID-19 55.23 456 68
Hemophilia 45.92 123 46
这不起作用(显然)
correct_by_terms <- function(x) {
filter(df1, str_detect(title, x))
result <- summarise(df1, mean = mean(average), n = n(), x = x)
return (result)
}
frequent_terms_by_correct_percent<- map_df(df2$word, correct_by_terms)
【问题讨论】:
-
似乎使用
fuzzyjoin::regex_left_join可能会更好
标签: r dictionary apply tidyverse tidytext