例如,我目前正在使用一个函数,该函数使您可以查看如果您投资股票市场可能有多少钱。目前,它使用的是循环结构,这确实让我很恼火,因为我知道可能有更好的方法对此进行编码并利用R中的向量。我也在运行函数之前创建了虚拟向量,这似乎也有些奇怪。
还是R的初学者(刚刚开始!),因此非常感谢任何有用的指导!
set.seed(123)
##Initial Assumptions
initialinvestment <- 50000 # e.g., your starting investment is $50,000
monthlycontribution <- 3000 # e.g., every month you invest $3000
months <- 200 # e.g., how much you get after 200 months
##Vectors
grossreturns <- 1 + rnorm(200, .05, .15) # approximation of gross stock market returns
contribution <- rep(monthlycontribution, months)
wealth <- rep(initialinvestment, months + 1)
##Function
projectedwealth <- function(wealth, grossreturns, contribution) {
for(i in 2:length(wealth))
wealth[i] <- wealth[i-1] * grossreturns[i-1] + contribution[i-1]
wealth
}
##Plot
plot(projectedwealth(wealth, grossreturns, contribution))
最佳答案
我可能会写
Reduce(function(w,i) w * grossreturns[i]+contribution[i],
1:months,initialinvestment,accum=TRUE)
但这是我偏爱使用功能。您在这里使用
for
循环没有任何问题。