簡體   English   中英

將循環結果保存在向量R中

[英]save results of loop in a vector R

我運行一個循環:

N = 10
alpha = 0.05
sigma = 0.01
for (i in 0:N){
Vt10[i] = ((sigma^2)/(alpha^2))*((N-i)+(2/alpha))*exp(-alpha*(N-i))-(1/(2*alpha))*exp(-2*alpha*(N-i))-(3/(2*alpha))
}

但是, Vt10最終僅輸出10個結果(當i = 0時不包括第一次迭代)。 如何創建一個包含所有11個迭代的向量?

回答:

N = 10
alpha = 0.05
sigma = 0.01
Vt10 = numeric(11)  ## this!
for (i in 0:N){
Vt10[i+1] = ((sigma^2)/(alpha^2))*((N-i)+(2/alpha))*exp(-alpha*(N-i))-(1/(2*alpha))*exp(-2*alpha*(N-i))-(3/(2*alpha))
}

另外,您需要Vt10[i+1] ,因為您從0循環到10,而數組索引應該是1到11。


評論:

您的代碼看起來像C代碼。 您不僅從0開始索引,而且為此任務編寫了一個循環。

嘗試:

N = 10
alpha = 0.05
sigma = 0.01
i = 0:10
Vt10 = ((sigma^2)/(alpha^2))*((N-i)+(2/alpha))*exp(-alpha*(N-i))-(1/(2*alpha))*exp(-2*alpha*(N-i))-(3/(2*alpha))

在這種情況下,無需預先定義向量。 R知道您正在執行逐元素計算,並將自動為Vt10分配一個長度為11的向量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM