我有一个数据框,如下所述,间隔为5分钟:

df 
Time           P_21 P_22P_23P_24
1/1/2014 0:00   50  60  40  30
1/1/2014 0:05   100 120 80  60
1/1/2014 0:10   150 180 120 90
1/1/2014 0:15   45  52  36  32
1/1/2014 0:20   90  104 72  64
1/1/2014 0:25   135 156 108 96
1/1/2014 0:30   42  56  39  31
1/1/2014 0:35   84  112 78  62
1/1/2014 0:40   126 168 117 93
1/1/2014 0:45   50  60  40  30
1/1/2014 0:50   50  60  40  30
1/1/2014 0:55   50  60  40  30
1/1/2014 1:00   50  60  40  30
1/1/2014 1:05   50  60  40  30

我想用它的平均值做15分钟的间隔

Time            P_21P_22P_23P_24
1/1/2014 0:00   100 120 80  60
1/1/2014 0:15   90  104 72  64
1/1/2014 0:30   84  112 78  62
1/1/2014 0:45   50  60  40  30
1/1/2014 1:00   continue    continue    continue    continue

它的平均值为00,05和10(3个数据)。 请帮我解决这个问题。

#1楼 票数:5

使用xts包,将您的数据读取为实时时间序列:

library(xts)
dx <- read.zoo(text='1/1/2014 0:00   50  60  40  30
1/1/2014 0:05   100 120 80  60
1/1/2014 0:10   150 180 120 90
1/1/2014 0:15   45  52  36  32
1/1/2014 0:20   90  104 72  64
1/1/2014 0:25   135 156 108 96
1/1/2014 0:30   42  56  39  31
1/1/2014 0:35   84  112 78  62
1/1/2014 0:40   126 168 117 93
1/1/2014 0:45   50  60  40  30
1/1/2014 0:50   50  60  40  30
1/1/2014 0:55   50  60  40  30
1/1/2014 1:00   50  60  40  30
1/1/2014 1:05   50  60  40  30',index=1:2,tz='',format="%d/%m/%Y %H:%M")

然后是方便的period.apply应用于汇总你的每个时间段的ts:

 period.apply(dx,endpoints(dx,on = "mins",k=15),mean)

#                      V3  V4 V5 V6
# 2014-01-01 00:10:00 100 120 80 60
# 2014-01-01 00:25:00  90 104 72 64
# 2014-01-01 00:40:00  84 112 78 62
# 2014-01-01 00:55:00  50  60 40 30
# 2014-01-01 01:05:00  50  60 40 30

#2楼 票数:4

这是使用data.table包的替代方法

library(data.table)
setDT(df)[, Time := Time[1L], 
            by = cumsum(as.POSIXlt(Time, format = "%m/%d/%Y %H:%M")$min %% 15 == 0)]
df[, lapply(.SD, mean), by = Time]
#             Time P_21 P_22 P_23 P_24
# 1: 1/1/2014 0:00  100  120   80   60
# 2: 1/1/2014 0:15   90  104   72   64
# 3: 1/1/2014 0:30   84  112   78   62
# 4: 1/1/2014 0:45   50   60   40   30
# 5: 1/1/2014 1:00   50   60   40   30

  ask by Dola Islam translate from so

未解决问题?本站智能推荐:

2回复

R:计算15分钟的时间间隔

我想计算大型数据集中每个15分钟间隔开始的工作日会话数量。 我的数据如下: 我想计算每15分钟开始的所有开始会话,其中: 等等和周末的相同数据。 我试过切割功能: 编辑:当我运行这个时,我收到以下错误: 和lubridate的一些功能,但我似乎无法使其
2回复

从R中的每分钟数据创建15分钟的时间间隔?

我有一些数据按以下方式格式化: 所以我从00:00到23:59,每分钟都有一个计数器。 我想以15分钟的间隔对数据进行分组,以便: 我已经尝试手动完成但是这很累,所以我确信必须有一个功能或某事可以轻松完成,但我还没想出怎么做。 我真的很感激一些帮助!! 非常感谢你!
1回复

如何为每1小时以15分钟为时间间隔收集的数据创建一个时间序列

数据从(2019-01-01 00:00:00.0)到(2019-04-15 23:45:00.0) 我已经试过了: 我想要按小时记录的时间序列,以15分钟的时间间隔记录。
1回复

如何以15分钟为间隔对分钟进行分组

我有一个带有日期,名称和值的数据框,这里的某些日期以15分钟为间隔,而有些则不是,如何通过将非15分钟的分组以固定的间隔来求平均值。 如果分钟介于0至14分钟之间,则介于15分钟之间,15-29至15分钟之间,30-44至30分钟,45-59至45分钟之间
1回复

将时间序列数据汇总15分钟

我在这里看了很多关于聚合时间序列数据的问题,但我似乎无法解决我的问题。 我的数据如下: 我想找到一种方法以15分钟的增量滚动它,总结每一行。 我已经尝试了merge和cut以及aggregate和na.locf方法,但它们都没有完全奏效。 我也尝试过period.apply但我似乎
1回复

从R中的特定时间间隔总和分解为分钟

我需要每小时进行一次数据汇总,但首先要将其拆分为几分钟。 我的数据如下所示: 计数代表counts_sec的累积总和(38秒内有10个计数)。 通常,测量时间为20分钟(1200秒)。 我现在想要分钟值,并作为下一步将这些值汇总为每小时总和。 有人可以帮我吗?
3回复

在R中以5分钟的时间间隔创建一个24小时的向量

有什么方法可以在R中从头开始或从像这样的整数格式创建一个间隔为5分钟的24小时向量: 2355,它对应于23:55 155,对应于1:55 等等。 基本上我想要的是一个从00:00到23:55的向量,因此我可以绘制一个图形,其中包含与每个时间间隔相对应的数据。
1回复

在R闪亮反应表上以分钟为单位计算日期时间间隔

如何计算R Shiny的反应式表中2个日期时间列之间的间隔? 错误:没有强制将“字符”强制为“ NA”的方法或默认方法