2012-08-07 106 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 
      } } 

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