将 tibble 转换为 xts 以使用 performanceanalytics 包进行分析
Convert tibble to xts for analysis with performanceanalytics package
我有一个带有日期和 return 列的标题,如下所示:
> head(return_series)
# A tibble: 6 x 2
date return
<chr> <dbl>
1 2002-01 0.0292
2 2002-02 0.0439
3 2002-03 0.0240
4 2002-04 0.00585
5 2002-05 -0.0169
6 2002-06 -0.0686
我首先使用以下代码将日期添加到日期列:
return_series$date <- as.Date(as.yearmon(return_series$date))
# A tibble: 6 x 2
date return
<date> <dbl>
1 2002-01-01 0.0292
2 2002-02-01 0.0439
3 2002-03-01 0.0240
4 2002-04-01 0.00585
5 2002-05-01 -0.0169
6 2002-06-01 -0.0686
我的目标是将 return_series tibble 转换为 xts 数据,以将其用于 PerformanceAnalytics 包的进一步分析。但是当我使用命令 as.xts 时,我收到以下错误:
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
如何将格式更改为 xts,或者是否有其他方法可以使用 PerformanceAnalytics 包而不是转换为 xts?
非常感谢您的帮助!
您需要更严格地遵循 xts
文档:
> tb <- as_tibble(data.frame(date=as.Date("2002-01-01") + (0:5)*30,
+ return=rnorm(6)))
> tb
# A tibble: 6 × 2
date return
<date> <dbl>
1 2002-01-01 0.223
2 2002-01-31 -0.352
3 2002-03-02 0.149
4 2002-04-01 1.42
5 2002-05-01 -1.04
6 2002-05-31 0.507
>
> x <- xts(tb[,-1], order.by=as.POSIXct(tb[[1]]))
> x
return
2001-12-31 18:00:00 0.222619
2002-01-30 18:00:00 -0.352288
2002-03-01 18:00:00 0.149319
2002-03-31 18:00:00 1.421967
2002-04-30 19:00:00 -1.035087
2002-05-30 19:00:00 0.507046
>
xts
对象更喜欢 POSIXct
日期时间对象,您可以从 Date
对象转换该对象。对于 (closely-related) zoo
对象,您可以保留 Date
.
我有一个带有日期和 return 列的标题,如下所示:
> head(return_series)
# A tibble: 6 x 2
date return
<chr> <dbl>
1 2002-01 0.0292
2 2002-02 0.0439
3 2002-03 0.0240
4 2002-04 0.00585
5 2002-05 -0.0169
6 2002-06 -0.0686
我首先使用以下代码将日期添加到日期列:
return_series$date <- as.Date(as.yearmon(return_series$date))
# A tibble: 6 x 2
date return
<date> <dbl>
1 2002-01-01 0.0292
2 2002-02-01 0.0439
3 2002-03-01 0.0240
4 2002-04-01 0.00585
5 2002-05-01 -0.0169
6 2002-06-01 -0.0686
我的目标是将 return_series tibble 转换为 xts 数据,以将其用于 PerformanceAnalytics 包的进一步分析。但是当我使用命令 as.xts 时,我收到以下错误:
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
如何将格式更改为 xts,或者是否有其他方法可以使用 PerformanceAnalytics 包而不是转换为 xts?
非常感谢您的帮助!
您需要更严格地遵循 xts
文档:
> tb <- as_tibble(data.frame(date=as.Date("2002-01-01") + (0:5)*30,
+ return=rnorm(6)))
> tb
# A tibble: 6 × 2
date return
<date> <dbl>
1 2002-01-01 0.223
2 2002-01-31 -0.352
3 2002-03-02 0.149
4 2002-04-01 1.42
5 2002-05-01 -1.04
6 2002-05-31 0.507
>
> x <- xts(tb[,-1], order.by=as.POSIXct(tb[[1]]))
> x
return
2001-12-31 18:00:00 0.222619
2002-01-30 18:00:00 -0.352288
2002-03-01 18:00:00 0.149319
2002-03-31 18:00:00 1.421967
2002-04-30 19:00:00 -1.035087
2002-05-30 19:00:00 0.507046
>
xts
对象更喜欢 POSIXct
日期时间对象,您可以从 Date
对象转换该对象。对于 (closely-related) zoo
对象,您可以保留 Date
.