R 如何按日期分组求和

R 如何按日期分组求和,r,R,我有一个很大的表,表中有一个comments列(包含大量的文本字符串)和一个date列,注释是在这两个列上发布的。我创建了一个单独的关键字向量(我们称之为键),我想计算每天有多少匹配项。这让我很接近,但是它计算了整个数据集的匹配,我需要每天对它进行细分。守则: key <- c('A','B','C','D') table_mentions <- data.frame(key, colsum(sapply(key, grepl, table_orig$comment))) key

我有一个很大的表,表中有一个comments列(包含大量的文本字符串)和一个date列,注释是在这两个列上发布的。我创建了一个单独的关键字向量(我们称之为键),我想计算每天有多少匹配项。这让我很接近,但是它计算了整个数据集的匹配,我需要每天对它进行细分。守则:

key <- c('A','B','C','D')

table_mentions <- data.frame(key, colsum(sapply(key, grepl, table_orig$comment)))

key正如评论中所指出的,您可以使用
dplyr中的
group\u by

首先,您可以为每个评论/句子提取关键字。然后
unnest
,这样每个关键字都在一个单独的带有日期的行中

然后,使用包含日期和注释的
groupby
(以获得日期和关键字组合的频率)。使用
summary
n()
会引起很多人的注意

下面是一个完整的示例:

library(tidyverse)
library(stringr)

key <- c("very", "good", "something", "is")

table_orig <- data.frame(
  date = c("01-03-21", "01-03-21", "01-04-21", "01-04-21", "01-05-21"),
  comment = c("This is very good", "This is bad", "This is good", "nothing", "something going on")
)

table_orig %>%
  mutate(word_match = map2(comment, paste(key, collapse = "\\b|\\b"), str_extract_all)) %>%
  unnest(cols = word_match) %>%
  unnest(cols = word_match) %>%
  group_by(date, word_match) %>%
  summarise(mentions = n())
库(tidyverse)
图书馆(stringr)
关键%
unnest(cols=单词匹配)%>%
unnest(cols=单词匹配)%>%
分组依据(日期、单词匹配)%>%
总结(提及=n())
输出

  date     word_match mentions
  <chr>    <chr>         <int>
1 01-03-21 good              1
2 01-03-21 is                2
3 01-03-21 very              1
4 01-04-21 good              1
5 01-04-21 is                1
6 01-05-21 something         1
dateword\u匹配提到
01-03-21良好1
201-03-21是2
3 01-03-21非常1
4 01-04-21良好1
5 01-04-21是1
01-05-21某物1

在没有至少一份数据样本的情况下回答您的问题将极具挑战性。如果您的数据非常大,请使用
dput(表原)
dput(头(表原))的输出回答您的问题。有关更多信息,请参见
tidyverse
软件包中的
groupby
。但是,您应该发布一个要处理的示例数据,正如@Ian CampbellI所建议的那样,我已经用表的dput示例更新了该帖子。我不得不把评论限制在一定数量的字符上,我只写了三天,但概念应该是一样的。我还对代码进行了一些编辑,因为我注意到我有一些错误。非常感谢。我考虑过分组方式,但我不知道如何计算每个键之间的匹配数,输出显示每天的所有四个键,以及特定日期每个键的计数。我觉得应该有一个简单的方法来做到这一点,但我可能遗漏了一些东西…@Therion 17创建一个代表事物外观的数据样本,用句子进行注释可能会有所帮助。例如,你是否有类似“这是一个非常好的评论”这样的评论。-那么“非常”和“好”这两个关键词在那个特定的日期都有效吗?谢谢!每个人都提到这一点吗?例如,如果其中一条注释中出现了“Does”和“Very”,这将同时计算这两条注释还是仅计算第一条注释?这将计算示例数据中的4个字符串。因此,在提供的样本数据集中,“Does”和“Very”出现单独的注释。你有时会在一条评论中包含多个关键词吗?如果是这样,或者这没有给出你想要的答案,那么在问题/帖子中澄清一些更具代表性的问题可能会有所帮助。嗨,本。我不得不将注释列中的字符数限制为4或5个,因为stackoverflow不允许我粘贴整个集合。但在实际数据中,注释栏是典型的一两句话,可能包含多个关键词。我希望每天为每一个关键词统计每一个关键词。我想这确实让我更接近了!我认为这是我使用sapply的原因之一——迫使它循环使用每个关键术语——但我不确定如何将这个概念与团队结合使用_by@therion17请参阅编辑后的答案-这是否更接近您的需要?