首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将列表R_converting到矩阵中

将列表R_converting到矩阵中
EN

Stack Overflow用户
提问于 2014-03-28 19:06:49
回答 1查看 77关注 0票数 0

我有一个四年的时间序列数据。我想在几个月内做一次for循环操作。我正在使用'xts‘包。这是我的原始数据框('obs')的前四行的样子

代码语言:javascript
复制
           t       V2     V3     V4     V5     V6     V7     V8     V9     
1 2009-09-25 18:00:00 32.965 32.965 33.525 32.965 32.965 32.965 32.965  
2 2009-09-26 06:00:00 32.965 32.965 32.965 32.965 31.853 32.407 31.301 
3 2009-09-26 18:00:00 31.853 31.853 31.853 32.407 31.301 30.752 31.301  
4 2009-09-27 06:00:00 29.687 29.194 30.752 28.707 27.750 27.279 27.279  

首先,我使用以下命令将数据序列拆分为月度数据

代码语言:javascript
复制
obsl <- split(obs, f = "months", drop=FALSE, k = 1)

现在,我在一个列表中列出了所有的月度数据系列。我想调用每个月度列表,使用obsli 'i‘是’i‘月度列表,并将此列表转换为月度数据序列矩阵。例如,这是obsl2的输出,这是一个列表

代码语言:javascript
复制
                          V2      V3      V4      V5      V6      V7      V8      V9     
 2009-10-01 06:00:00  25.900  25.900  25.900  26.355  26.814  25.900  25.900  25.451  
 2009-10-01 18:00:00  25.900  25.900  25.900  25.007  25.007  25.007  25.900  25.451  
 2009-10-02 06:00:00  25.007  25.007  25.007  25.007  25.007  25.007  25.007  25.007  
 2009-10-02 18:00:00  25.007  25.007  25.007  25.007  25.900  25.007  24.136  24.569  



 2009-10-31 18:00:00  36.950  37.531  38.115  38.702  39.884  40.480  41.681  42.286  

但我不确定这是不是正确和优雅的方式。此外,我不知道如何将列表转换为具有原始矩阵形式的矩阵(即第一个列时间戳和其余的数字)。有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

发布于 2014-03-30 23:23:36

要将xts对象的list转换为单个xts对象,可以使用do.call(rbind, ...)习惯用法

代码语言:javascript
复制
obs <- getSymbols("SPY", from="2013-01-01", to="2013-12-31", src="yahoo", auto.assign=FALSE)
obsl <- split(obs, "months")
do.call(rbind, obsl)

最后一行相当于rbind(obsl[[1]], obsl[[2]], ..., obsl[[12]])

如果这太慢了,你可以试试do.call.rbind

代码语言:javascript
复制
library(qmao)  # R-Forge
do.call.rbind(obsl)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22711135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档