gpt4 book ai didi

r - 每天汇总小时数和分钟数?

转载 作者:行者123 更新时间:2023-12-01 12:28:33 25 4
gpt4 key购买 nike

我有一个具有以下形状的数据集:

2016-04-14 23:13:33
2016-04-14 23:18:37
2016-04-15 00:32:24
2016-04-15 00:33:11
2016-04-15 00:33:20

我想做的是每天以 15 分钟为间隔对数据进行分组,因此它看起来像:

Date                          Count
2016-04-14 23:00-23.15 27
. .
2016-04-15 00:00 - 00:15 41

因此 count 变量只会计算该间隔内有多少个观测值。

更新:

我删掉了我的代码,因为我认为它的答案令人困惑。那么,您将如何以 15 分钟的间隔对这些数据进行分组以保留天数?这是我的意思的一个例子:

Date                          count
2016-05-01 23:45 - 23:59 19
2016-05-02 00:00 - 00:14 276
2016-05-02 00:15 - 00:29 328
2016-05-02 00:30 - 00:44 244

有什么建议可以按天分解这个“计数”数据吗?

谢谢!

最佳答案

POSIXct 变量 hourmessages$date 包含有关日期和时间的信息,因此您只需按日期而不是按时间分组。这是修改后的代码。

messages <- data.frame(created_at = c('2016-04-14 23:13:33','2016-04-14 23:18:37','2016-04-15 00:32:24','2016-04-15 00:33:11','2016-04-15 00:33:20')
)

messages$created_at <- strptime(messages$created_at,"%Y-%m-%d %H:%M:%S")
messages$created_at[1]
hourmessages <- data.frame(
date=messages$created_at,
time=format(messages$created_at, "%H:%M")
)

denshours <- with( hourmessages, table(hourmessages$date)) #Replaced 'time' with 'date'
denshours <- as.data.frame(denshours)

denshours$Var1 <- strptime(denshours$Var1,"%Y-%m-%d %H:%M") #Corrected date formatting
denshours$Var1 = cut(denshours$Var1, breaks="15 min")


dat.summary = aggregate(denshours$Freq ~ denshours$Var1, FUN=sum, data=denshours)
colnames(dat.summary)[1] <- "time"
colnames(dat.summary)[2] <- "count"

更新:根据对您问题的更新,您似乎想将日期缩短到“不错”的休息时间,例如 00:00、15:00,而不是从这样的时间开始如 13:00。 R 使用第一个数据点来确定日期中断,从而确定并发症。您可以利用 POSIXct 对象实际上是数字这一事实,并像这样获取汇总表:

messages <- data.frame(created_at = c('2016-04-14 23:13:33','2016-04-14 23:18:37','2016-04-15 00:32:24','2016-04-15 00:33:11','2016-04-15 00:33:20')
)

messages$created_at <- strptime(messages$created_at,"%Y-%m-%d %H:%M:%S")

#This following line defines 15 minute breaks. If needed, you can replace 60*15 with the number of seconds for which you want your breaks to be defined.
messages$created_at_breaks <- as.POSIXct(floor(as.numeric(messages$created_at)/(60*15))*60*15,origin = '1970-01-01')

dat.summary <- data.frame(table(messages$created_at_breaks))

关于r - 每天汇总小时数和分钟数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36985497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com