【问题标题】:R: modify xts matrix for each day seriesR:修改每天系列的xts矩阵
【发布时间】:2012-02-28 17:41:55
【问题描述】:

我有一个 xts 数字矩阵,其中包括多天的分钟间隔系列。我需要计算每一天的分钟数统计数据,添加新列,然后将所有日期序列重新组合在一起。

我已经尝试过 apply.daily(),它每天都使用 xts 矩阵调用我的 stats 函数,但我不知道如何将修改后的日期序列返回给调用函数并重新组装完整的集合修改数据。

一种可行的解决方案是在循环中使用 endpoints(x, on = "day"),然后调用 rbind 重新组装处理过的日帧。有没有更好的解决方案?

process = function(myxts) {  
  day.indexes = endpoints(myxts, on="days")
  days = length(day.indexes) - 1

  l = list()
  list.index = 1

  for( i in 1:days ) {
    day.begin = day.indexes[i] + 1
    day.end = day.indexes[i+1]
    l[[list.index]] = ets.sym.process.daily(myxts[day.begin:day.end])
    list.index = list.index + 1
  }

  return(do.call("rbind", l))
}

【问题讨论】:

  • 问题是您现在有一组每日数据,您希望将这些数据合并到您的分钟数据中(这样 2012-02-28 的所有分钟柱都会获得 2012-02- 的值28 来自您的日常数据等)?如果是这样,请参阅stackoverflow.com/questions/8971797/…(基本上:merge,然后是na.locf

标签: r apply xts


【解决方案1】:

您应该能够使用do.call(rbind, lapply(split(myxts,"days"), myfun)) 的某种组合。如果没有可重复的示例,很难更具体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    相关资源
    最近更新 更多