如何将 XTS 更改为 data.frame 并保留索引? [英] How can I change XTS to data.frame and keep Index?

查看:21
本文介绍了如何将 XTS 更改为 data.frame 并保留索引?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 R 中有以下格式的 XTS 时间序列,我正在尝试在导出为 CSV 以在另一个程序中工作之前进行一些处理、子集化和重新排列.

I have an XTS timeseries in R of the following format and am trying to do some processing, subsetting and re-arranging before exporting as a CSV for work in another program.

head(master_1)
                   S_1
2010-03-03 00:00:00 2.8520
2010-03-03 00:30:00 2.6945
2010-03-03 01:00:00 2.5685
2010-03-03 01:30:00 2.3800
2010-03-03 02:00:00 2.2225
2010-03-03 02:30:00 2.0650

str(master_1)
An ‘xts’ object from 2010-03-03 to 2010-05-25 08:30:00 containing:
  Data: num [1:4000, 1] 2.85 2.69 2.57 2.38 2.22 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr "S_1"
  Indexed by objects of class: [POSIXt,POSIXct] TZ: 
  Original class: 'zoo'  
  xts Attributes:  
List of 1
 $ dateFormat: chr "Date"

我想将其转换为 data.frame 以便我可以更轻松地操作它,然后导出到另一个程序.但是,当我使用 test1 <- as.data.frame(master_1) 时,test1 确实具有可见的索引(即日期和时间),

And I would like to convert this to a data.frame so I can manipulate it more easily and then export to another program. However, when I use test1 <- as.data.frame(master_1) the test1 does have the Index (i.e. the dates and times) visible,

head(test1)
                       S_1
2010-03-03 00:00:00 2.8520
2010-03-03 00:30:00 2.6945
2010-03-03 01:00:00 2.5685
2010-03-03 01:30:00 2.3800
2010-03-03 02:00:00 2.2225
2010-03-03 02:30:00 2.0650 

但是索引没有显示,

str(test1)
'data.frame': 4000 obs. of  1 variable:
 $ S_1: num  2.85 2.69 2.57 2.38 2.22 ...

并且编写 csv write.csv(master_1, file="master_1.csv") 不包括时间或日期.为什么会这样,如何将数据/时间数据作为列包含,以便在其他 R 命令中使用并正确导出?

And writing a csv write.csv(master_1, file="master_1.csv") does not include the time or date. Why is this, and how can I include the data/time data as a column, so it is used in other R commands and exported properly?

感谢您的帮助.

推荐答案

那是因为日期是 data.frame 中的行名.您需要将它们设为单独的列.

That's because the dates are rownames in your data.frame. You need to make them a separate column.

试试这个:

 data.frame(date=index(master_1), coredata(master_1))

这篇关于如何将 XTS 更改为 data.frame 并保留索引?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆