将XTS对象转换为data.frame

时间:2012-07-11 09:45:58

标签: r xts

  

可能重复:
  How to create a variable of rownames?


请在R:

中运行
require(quantmod)   
setSymbolLookup(SDB=list(name="000001.sz",src="yahoo"))   
getSymbols("SDB",from="2010-01-01",to="2010-02-01")   
sdb=as.data.frame(weeklyReturn(SDB))  
sdb    

我得到的是:

           weekly.returns             
2010-01-08    -0.07830343          
2010-01-15    -0.05176991              
2010-01-22     0.07699487              
2010-01-29    -0.05979203         
2010-02-01    -0.02119816 

我想得到的是:

        date  weekly.returns                   
1 2010-01-08     -0.07830343           
2 2010-01-15     -0.05176991         
3 2010-01-22      0.07699487          
4 2010-01-29     -0.05979203            
5 2010-02-01     -0.02119816 

我该怎么做?

请注意,这是一个XTS对象,而不是基本的data.frame。转换后,我希望原始的rownames在结果data.frame中显示为新变量。

1 个答案:

答案 0 :(得分:11)

确定。因此,它与您之前的问题不完全相同,因为这是一个XTS对象。仍然,很容易照顾:

data.frame(date = index(weeklyReturn(SDB)), 
           weeklyReturn(SDB), row.names=NULL)
#         date weekly.returns
# 1 2010-01-04    -0.03303426
# 2 2010-01-11    -0.04681569
# 3 2010-01-18    -0.05000000
# 4 2010-01-25     0.03353517
# 5 2010-02-01    -0.04281208

有关此处所做操作的帮助,请查看使用?indexClass阅读index包中XTS的文档。