【发布时间】:2018-10-28 09:25:24
【问题描述】:
我有一些 6 分钟频率的热电偶数据。热电偶安装在不同的高度,在每个高度都有一个按径向位置区分的热电偶编号
DT_TI_RECORDED HEIGHT POS TEMPERATURE
2018-05-16 00:00:00 1 90 111
2018-05-16 00:00:00 1 180 112
2018-05-16 00:00:00 1 270 113
2018-05-16 00:00:00 2 90 112
2018-05-16 00:00:00 2 180 114
2018-05-16 00:00:00 2 270 115
2018-05-16 00:00:00 3 90 112
2018-05-16 00:00:00 3 180 112
2018-05-16 00:00:00 3 270 113
...
2018-05-16 00:06:00 1 90 111
2018-05-16 00:06:00 1 180 112
2018-05-16 00:06:00 1 270 113
2018-05-16 00:06:00 2 90 112
2018-05-16 00:06:00 2 180 114
2018-05-16 00:06:00 2 270 112
2018-05-16 00:06:00 3 90 114
2018-05-16 00:06:00 3 180 112
2018-05-16 00:06:00 3 270 114
...
对于每个独特的高度和位置组合,每 6 分钟我想计算一个向后 n 小时移动方差假设是 4 小时。
我试图复制的原始代码是为 SAS stats 包编写的
PROC EXPAND DATA=Raw_data
OUT=Moving_Variance
ALIGN = BEGINNING
;
by HEIGHT POS;
ID DT_TI_RECORDED ;
CONVERT TEMPERATURE = Moving_4hour_Var / METHOD = none TRANSFORMOUT = (MOVVAR 40);
#/* 40 obs at 6min freq = 4hour moving variance*/
QUIT;
我花了几个小时搜索谷歌我认为我需要使用的 R 库称为 zoo,我想要的函数是 rollapply,但我不知道如何将聚合与 rollapply 结合起来。
我试过了
moving_var <- Raw_data %>%
aggregate(HEIGHT,POS) %>%
rollapply( TEMPERATURE, width = 40, FUN = sd, fill = NA)
但不起作用。我对 R 编程非常陌生,这让我发疯。
【问题讨论】:
标签: r time-series aggregation zoo