В настоящее время работаю с набором данных комментариев Reddit, взятых из Рождества 2017 года:
load('reddit_xmas_2017.RData')
reddit %>% print
# A tibble: 100,000 x 3
author body created_utc
<chr> <chr> <dttm>
1 br_shadow Thank you for this, there is a person writ… 2017-12-25 15:49:08
2 Ksalol They are not to quick actually. It's mainl… 2017-12-25 17:42:50
3 itscool83 tell her you guys should hang out when you… 2017-12-25 18:54:13
4 Glu7enFree "Autism is a high honor in the tech savvy … 2017-12-25 07:48:17
5 Theotheogrea… "You thought a cat was your son?! " 2017-12-25 20:58:08
6 Shadrac121 Hopfully she takes wat people say in and m… 2017-12-25 22:27:31
7 1fzUjhemoSB1… Si ce propui sa facem cu toata pielea rama… 2017-12-25 07:41:31
8 MinisterOfEd… "I don't mean to be impolite, but if you'r… 2017-12-25 19:28:35
9 AabidS10 i dont have a 720p x265 of it, sorry. i be… 2017-12-25 13:20:32
10 S3RG10 "I'm dying to try Guatemalan sandals and w… 2017-12-25 00:48:46
# … with 99,990 more rows
Я пытаюсь сжать эти данные, чтобы у меня были почасовые подсчеты обоих слов "снег"и "хлопья".
У меня есть следующий код, который дает мне час и подсчет (называемый «телом») упоминаний о снеге или хлопьях. Вычеркнутая строка с подсчетом - мой вопрос.
reddit %>%
mutate(body = str_count(str_to_lower(body), "snow|flakes")) %>%
filter(body != 0) %>%
select(created_utc, body) %>%
separate(created_utc, c("year", "month", "day"), "-") %>%
separate(day, c("day", "time"), " ") %>%
separate(time, c("hour", "minute", "second"), ":") %>%
select(hour, body) %>%
arrange(hour) %>%
#count(hour, body, sort = T) %>%
print(n = 20)
# A tibble: 271 x 2
hour body
<chr> <int>
1 00 1
2 00 1
3 00 1
4 00 3
5 00 1
6 00 1
7 00 1
8 00 1
9 00 1
10 00 1
11 00 1
12 00 2
13 00 1
14 00 1
15 00 1
16 00 1
17 01 1
18 01 2
19 01 1
20 01 1
# … with 251 more rows
Есть ли способ суммировать эти одинаковые строки с помощью функции count? Или, если бы мне нужно было просто использовать что-то вроде суммирования, как я мог бы это сделать?
Я надеюсь получить таблицу, в которой просто есть час (0-23) и тело в качестве суммарного числа каждого часа наблюдения,выглядит так:
# A tibble: 24 x 2
hour body
<chr> <int>
1 00 sum(body at hour == 0)
2 01 sum(body at hour == 0)
3 02 etc...
4 03 etc...
В настоящее время я работаю только с tidyverse, stringr и tidytext, поэтому у меня нет возможности использовать data.table.