如何计算数据帧中特定时间值的出现次数

时间:2019-02-19 16:14:52

标签: r

我有一个名为transaction的数据集,具有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 :(得分:0)

一种方法是使用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)

答案 1 :(得分:0)

base R中,将'timestamp'转换为POSIXlt,提取hour,将其转换为逻辑向量(==)并获得sum真元素的组合

sum(as.POSIXlt(df1$timestamp)$hour == 18)