我有五天的时间序列数据,格式为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 )的数据进行分组,然后对每个组执行所需的操作。在这里,我面临两个问题:
我应该如何在xts
时间索引上运行循环。我的意思是说,我可以使用minutes
xts
对象的xts
进行遍历吗?
如何将观察结果与相似的时间戳分组并执行所需的操作。例如,在上午11点找到所有观察结果。全部5天并计算回归系数。是否有任何定义的函数可以动态地对时间序列观察进行分组?
在所有这些操作中,我不想丢失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"';
}
}
索引。
答案 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)