我正在嘗試編寫一個簡單的函數,該函數可以在Excel中重現PRODUCT函數,該函數可用於計算投資回報。給定一段時間內的回報向量(如下所示),我想計算整個持有期間的總回報。R中的迭代複合返回(如Excel產品功能)
library(scales)
vec=c(2.1,3.1,5,-2.3,1.7,-9.8)
vecpercent=percent(vec/100)
在Excel這將作爲數組函數來計算,如下所示:{= 1 + PRODUCT(B4:B9)-1},如果在 「vecpercent」 的回報率在細胞B4通過B9.This是相當於(1 + r1)(1 + r2) ...(1 + rn),其中n是週期數。
我試圖用for循環來解決這個問題,我認識到這是在R世界中的禁忌。如果可能,我很樂意聽到更好的方法。但是如果需要一個循環,我是否也需要製作一個「助手」列,以便將每個回報率與前一個回報率相乘?
謝謝。
在這種情況下,沒有關於for-loops的禁忌。 R不支持隨機計算,只要預分配並且不使用浪費操作,for循環就可以正常工作。 –