как посчитать количество появлений определенного значения времени во фрейме данных - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть набор данных с именем транзакции с 350241 наблюдениями.

Образец данных:

transaction_id    timestamp              product_code 
19241             2001-01-11 15:48:00     1
29247             2001-04-08 11:25:00     9
34567             2001-03-10 16:24:00     17
48790             2001-09-23 13:33:00     45
56789             2001-11-01 11:47:00     52

ВОПРОС

Сколько транзакций былопроводится в 18:00 час?Как я могу найти это с помощью R?Я пробовал с таблицами, но набор данных большой, поэтому он не показывает все частоты.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

В base R преобразуйте 'timestamp' в POSIXlt, извлеките hour, преобразуйте его в логический вектор (==) и получите sum из TRUE элементов

sum(as.POSIXlt(df1$timestamp)$hour == 18)
0 голосов
/ 19 февраля 2019

Один из подходов заключается в создании переменной hour с использованием lubridate::hour(timestamp):

library(tidyverse)
library(lubridate)

df %>%
  count(hour = hour(timestamp))

. Затем можно выполнить фильтрацию всего за 18 часов:

df %>%
  count(hour = hour(timestamp)) %>%
  filter(hour == 18)

Более подробный способвыполнить то же самое:

df %>%
  mutate(hour = hour(timestamp)) %>%
  group_by(hour) %>%
  tally() %>%
  filter(hour == 18)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...