R 用循环填充矩阵的问题
我正处于用R编写代码的第一步 我试图填充一个矩阵,它基于矩阵中的一些向量。 这是我的矩阵:R 用循环填充矩阵的问题,r,loops,for-loop,matrix,vector,R,Loops,For Loop,Matrix,Vector,我正处于用R编写代码的第一步 我试图填充一个矩阵,它基于矩阵中的一些向量。 这是我的矩阵: OPEN NET_CONTRIBUTION RETURN CONTRIBUTION_RETURN SAVING_RETURN CLOSE [1,] 0 900 0.019 17.1 0 ? [2,] 917.1 900 -0.006 -5.4 0
OPEN NET_CONTRIBUTION RETURN CONTRIBUTION_RETURN SAVING_RETURN CLOSE
[1,] 0 900 0.019 17.1 0 ?
[2,] 917.1 900 -0.006 -5.4 0 ?
[3,] ? 900 0.004 3.6 0 ?
[4,] 903.6 900 0.004 3.6 0 ?
[5,] 903.6 900 0.002 1.8 0 ?
[6,] 901.8 900 0.002 1.8 0 ?
净贡献是一个具有常数的向量。
返回是一个随机值向量
- 贡献\回报是对净贡献的计算* (1+返回)李>
- 保存\返回应打开*(1+返回)
- 关闭应为打开+净贡献+贡献回报+储蓄回报
- 打开是上行的关闭值
for (i in 1:444){
Investment[i,5] <- Investment[i,1]*(1+Investment[i,3]) #Saving Return
Investment[i,6] <- Investment[i,1] + Investment[i,2] + Investment[i,4] Investment[i,5] # CLOSE
Investment[i+1,1] <- (Investment[i,6]) # OPEN in the next row
}
for(1:444中的i){
投资[i,5]+投资[i,5]+投资[i,6]>投资[i+1,1]在计算收盘时,您只缺少一个+
符号(投资[i,6]
)
你应该
Investment[i,6] <- Investment[i,1] + Investment[i,2] + Investment[i,4] + Investment[i,5]
Investment[i,6]在R中,我们有一个向量化的概念,它将你所做的一切应用于整个向量(或矩阵)。因此你真的不需要循环。大多数东西都比你想象的简单。例如:
NET_CONTRIBUTION = rep(900, 444)
RETURN = runif(444)
CONTRIBUTION_RETURN = NET_CONTRIBUTION * (1+RETURN)
那么,您可能不想使用矩阵来组合这些向量。data.frame似乎更合适。只需执行以下操作:
MyDataFrame = data.frame(NET_CONTRIBUTION, RETURN, CONTRIBUTION_RETURN)
您好,TomTr。请添加一个。这样您可以帮助他人帮助您!您提供的矩阵示例不容易使用。也就是说:在您的代码中,Investment[i,6]虽然这可能是正确的,但这更多的是一种观点,并没有解决错误。谢谢。至于向量化的概念,我理解它,但尽管因为开放向量和闭合向量依赖于其他向量的结果,最好按照建议在矩阵或数据框中进行。
NET_CONTRIBUTION = rep(900, 444)
RETURN = runif(444)
CONTRIBUTION_RETURN = NET_CONTRIBUTION * (1+RETURN)
MyDataFrame = data.frame(NET_CONTRIBUTION, RETURN, CONTRIBUTION_RETURN)