我有一个csv文件,其中有2个股票的收盘价(每天)
Dates Bajaj_close Hero_close
3/14/2013 1854.8 1669.1
3/15/2013 1850.3 1684.45
3/18/2013 1812.1 1690.5
3/19/2013 1835.9 1645.6
3/20/2013 1840 1651.15
3/21/2013 1755.3 1623.3
3/22/2013 1820.65 1659.6
3/25/2013 1802.5 1617.7
3/26/2013 1801.25 1571.85
3/28/2013 1799.55 1542
我想将上述数据转换为时间序列格式。(开始日期是3/14/2013
,结束日期是3/13/2015
)我已经尝试过了,但是它给了我一些奇怪的输出
values <- bajaj_hero[, -1] (excluded first column i.e date in real dataset)
bajaj_hero_timeseries <- ts(values,start=c(2013,1),end=c(2015,3),frequency=365)
输出为:
Bajaj_close Hero_close
2013.000 1854.80 1669.10
2013.003 1850.30 1684.45
2013.005 1812.10 1690.50
2013.008 1835.90 1645.60
2013.011 1840.00 1651.15
2013.014 1755.30 1623.30
2013.016 1820.65 1659.60
2013.019 1802.50 1617.70
2013.022 1801.25 1571.85
R有多种重新设置时间序列的方式。由于您使用的是股票的每日价格,因此您可能希望考虑金融市场在周末和工作假期休市,因此交易日和日历日不相同。但是,您可能需要在交易日和日历日方面使用时间序列。例如,无论周末是否介入,每日收益都是根据连续的每日收盘价计算的。但是您可能还想进行基于日历的报告,例如每周价格汇总。由于这些原因,xts包是zoo的扩展,通常与R中的财务数据一起使用。下面是如何与数据一起使用的示例。
假设示例中显示的数据在数据帧df中
library(xts)
stocks <- xts(df[,-1], order.by=as.Date(df[,1], "%m/%d/%Y"))
#
# daily returns
#
returns <- diff(stocks, arithmetic=FALSE ) - 1
#
# weekly open, high, low, close reports
#
to.weekly(stocks$Hero_close, name="Hero")
这给出了输出
Hero.Open Hero.High Hero.Low Hero.Close
2013-03-15 1669.1 1684.45 1669.1 1684.45
2013-03-22 1690.5 1690.50 1623.3 1659.60
2013-03-28 1617.7 1617.70 1542.0 1542.00
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句