在R中动态地对时间序列观察进行分组

时间:2016-03-21 09:51:59

标签: r time-series xts

我有五天的时间序列数据,格式为xts个对象。数据生成为:

library(xts)
Sys.setenv(TZ="Asia/Kolkata")
seq <- timeBasedSeq('2015-06-01/2015-06-05 23')
z <- xts(1:length(seq),seq)

现在,我想在for循环中动态地对具有相似时间戳(仅 H:M:S )的数据进行分组,然后对每个组执行所需的操作。在这里,我面临两个问题:

  1. 我应该如何在xts时间索引上运行循环。我的意思是说,我可以使用minutes xts对象的xts进行遍历吗?

  2. 如何将观察结果与相似的时间戳分组并执行所需的操作。例如,在上午11点找到所有观察结果。全部5天并计算回归系数。是否有任何定义的函数可以动态地对时间序列观察进行分组?

  3. 在所有这些操作中,我不想丢失session_start(); include('connect.php'); $select = "SELECT *"; $from = " FROM filter"; if($_POST) { $_SESSION['days'] = array(); $_SESSION['WHERE'] = array(); $day = $_POST['day']; $WHERE = $_SESSION['WHERE']; if($day!='') { foreach($day as $k) { array_push($_SESSION['days'],$k); $Day[] = "dayId = $k"; } $WHERE[] = ' ('.implode(' OR ',$Day).')'; } else { $WHERE[] = ''; } } if(!empty($_SESSION['days'])) { foreach($_SESSION['days'] as $l) { ${m.$l} = 'checked = "checked"'; } } 索引。

1 个答案:

答案 0 :(得分:1)

您可以通过HH:MM:SS split您的数据,然后遍历结果列表。

# convert to factor because split.xts will pass f to endpoints() if f is character
# (even if it's more than one element). split.zoo is called if f is factor.
y <- split(z, factor(format(index(z), "%H%M%S")))
# loop over each time group
l <- lapply(y, FUN)
# combine results
x <- do.call(rbind, l)