Returns a table of returns formatted with years in rows, months in columns,
and a total column in the last column. For additional columns in R,
annual returns will be appended as columns.
table.CalendarReturns(R, digits = 1, as.perc = TRUE, geometric = TRUE)an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns
number of digits to round results to for presentation
TRUE/FALSE if TRUE, multiply simple returns by 100 to get %
utilize geometric chaining (TRUE) or simple/arithmetic chaining (FALSE) to aggregate returns, default TRUE
This function assumes monthly returns and does not currently have handling for other scales.
This function defaults to the first column as the monthly returns to be formatted.
data(managers)
t(table.CalendarReturns(managers[,c(1,7,8)]))
#> 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006
#> Jan 0.7 2.1 0.6 -0.9 -1.0 0.8 1.4 -4.1 0.5 0.0 6.9
#> Feb 1.9 0.2 4.3 0.9 1.2 0.8 -1.2 -2.5 0.0 2.1 1.5
#> Mar 1.6 0.9 3.6 4.6 5.8 -1.0 0.6 3.6 0.9 -2.1 4.0
#> Apr -0.9 1.3 0.8 5.1 2.0 3.5 0.5 6.5 -0.4 -2.1 -0.1
#> May 0.8 4.4 -2.3 1.6 3.4 5.8 -0.1 3.4 0.8 0.4 -2.7
#> Jun -0.4 2.3 1.2 3.3 1.2 0.2 -2.4 3.1 2.6 1.6 2.2
#> Jul -2.3 1.5 -2.1 1.0 0.5 2.1 -7.6 1.8 0.0 0.9 -1.4
#> Aug 4.0 2.4 -9.4 -1.7 3.9 1.6 0.8 0.0 0.5 1.1 1.6
#> Sep 1.5 2.2 2.5 -0.4 0.1 -3.1 -5.8 0.9 0.9 2.6 0.7
#> Oct 2.9 -2.1 5.6 -0.1 -0.8 0.1 3.0 4.8 -0.1 -1.9 4.3
#> Nov 1.6 2.5 1.3 0.4 1.0 3.4 6.6 1.7 3.9 2.3 1.2
#> Dec 1.8 1.1 1.0 1.5 -0.7 6.8 -3.2 2.8 4.4 2.6 1.1
#> HAM1 13.6 20.4 6.1 16.1 17.7 22.4 -8.0 23.7 14.9 7.8 20.5
#> EDHEC LS EQ NA 21.4 14.6 31.4 12.0 -1.2 -6.4 19.3 8.6 11.3 11.7
#> SP500 TR 23.0 33.4 28.6 21.0 -9.1 -11.9 -22.1 28.7 10.9 4.9 15.8
# don't test on CRAN, since it requires Suggested packages
# prettify with format.df in hmisc package
require("Hmisc")
result = t(table.CalendarReturns(managers[,c(1,8)]))
textplot(format.df(result, na.blank=TRUE, numeric.dollar=FALSE,
cdec=rep(1,dim(result)[2])), rmar = 0.8, cmar = 1,
max.cex=.9, halign = "center", valign = "top",
row.valign="center", wrap.rownames=20, wrap.colnames=10,
col.rownames=c( rep("darkgray",12), "black", "blue"),
mar = c(0,0,3,0)+0.1)
title(main="Calendar Returns")