0

我们又来了,我仍然在上面的问题上撞墙。我有一个通过 csv 上传的 data.frame,如下所示:

X          SPY      VTI
01.02.2002 0.0000   0.0000
04.02.2002 -2.4578  -2.4167 
.....
31.12.2015 -1.003   -0.9685

其中 X 是日期,SPY 和 VTI 是股票收益

我尝试了很多东西来转换为时间序列。首先我试过

spyvti$X <- as.Date(as.character(spyvti$X),format="%d.%m.%Y.")

我得到的是:

 X        SPY     VTI
 NA       0.0000    0.0000
 NA       -2.4856   -2.4167
 .....
 NA       -1.003   -0.9685

所以看起来它无法在类(日期)的对象中转换第一列,这是一个因素。

我还尝试将 data.drame 分离为 3 个不同的向量,首先将日期向量转换为字符,这有效,然后

date <- as.Date(date, format = "%d.%m.%Y.")
error in charToDate(x):
character string is not in a standard unambiguous format.

所以我想在克服日期问题方面获得一些帮助,我想知道当日期问题结束时,创建如下所示的 ts 对象是否正确

 tsobject <- xts(date,spy)

其中 spy 是一个数字。

非常感谢

保罗

4

3 回答 3

0

使用“润滑”包。它使日期转换变得超级容易。

library(lubridate)
dmy(spyvti$x)
于 2016-07-19T11:57:05.620 回答
0

我正在从我的脑海中弥补这一点。希望它有效。您可以尝试以下方法:

  Yourdataframe$X<-strptime(as.character(Yourdataframe$X),format="%d.%m.%Y")
  Yourdataframe<-xts(Yourdataframe[,2:3],order.by=Yourdataframe[,1]
于 2016-07-19T12:29:19.783 回答
0

假设您的示例数据框已命名df,您可以将其转换为 xts 时间序列对象,如下所示:

library(xts)
xtsObject <- as.xts(df[,-1],order.by = as.Date(as.character(df[,1]), format = "%d.%m.%Y"))
于 2016-07-20T06:23:12.943 回答