2012-08-07 104 views
0

我有以下數據幀和變量:R雙層循環與在

u0 <- c(1,1,1,1,1) 
df <- data.frame (u0) 
a = .793 
b = 2.426 
r = 0.243 
q = 1 
w = 2 
j = 1 
z = .314 

使用下面的循環,我做了一些計算,並把結果我的數據幀的第一排。

while (j<5){ 
    df[q,w] <- df[q, w-1] * (r+j-1)*(b+j-1)*(z)/((a+b+j-2)*j) 
    j = j + 1 
    w = w + 1 
} 

現在我想創建另一個循環做的所有行相同的計算(即我需要的「Q」變量會發生變化)我的數據幀。如果有人幫助我,我會很感激。

回答

2

你既可以把你的while環路for循環,越過q內做到這一點,但更R-tastic方法是簡單地定義q <- 1:5,並留下您的代碼的其餘部分原樣。然後df將完全填滿。我在這個例子中想要所有的行都是相同的?

0

難道你不能只是把它放在for循環?

df <- data.frame (d1=u0, d2=u0+1, d3=u0+2, d4=u0+4, d5=u0+5) 
for (q in 2:5) { 
while (j<5){ 
    df[q,w] <- df[q, w-1] * (r+j-1)*(b+j-1)*(z)/((a+b+j-2)*j) 
    j = j + 1 
    w = w + 1 
      } } 

您可能想檢查算法。它似乎沒有做任何有趣的事情。