从月度股票 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)
我仍然是数据争论的新手,正在努力寻找解决方案。
这是我的每月百分比变化的数据框:
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)