从月度股票 Returns 创建一个累积指数 Returns

Create an Index of Cumulative Returns from Monthly Stock Returns

我仍然是数据争论的新手,正在努力寻找解决方案。

这是我的每月百分比变化的数据框:

Month    Security1 Security2 ... SecurityN
1970-01   -2.30%     1.02%         0.64%
1970-02    1.87%    -0.01%         9.50%
1970-03    3.38%     2.33%         5.56%

我正在尝试获取每个证券每月 return(>1500 个)的数据框输出索引以显示累积 return,如下所示:

Month    Security1 Security2 ... SecurityN
1970-01     100       100           100
1970-02    101.87    99.99         109.50
1970-03    105.32    102.32        115.59

我试过使用:

cum.ret <- apply(dataframe, 2, function(x) Return.cumulative(x, geometric = TRUE))

但这只是 return 自成立以来每只股票的收益:例如Security1 returned 121%,Security2 returned 233%,等等

除了加载数据,我笔记本里没有其他代码。

如有任何帮助,我们将不胜感激!

可能的解决方案:

mydf[-1] <- lapply(mydf[-1], function(x) as.numeric(sub('%','',x)))
mydf[1,-1] <- 100
mydf[-1] <- lapply(mydf[-1], cumsum)

给出:

> mydf
    Month Security1 Security2 SecurityN
1 1970-01    100.00    100.00    100.00
2 1970-02    101.87     99.99    109.50
3 1970-03    105.25    102.32    115.06

已用数据:

mydf <- read.table(text="Month    Security1 Security2  SecurityN
1970-01   -2.30%     1.02%         0.64%
1970-02    1.87%    -0.01%         9.50%
1970-03    3.38%     2.33%         5.56%", header=TRUE, stringsAsFactors=FALSE)