2017-09-24 9 views
0

Mein Code ist unten angegeben. Der Code produziert g Werte mehr als einmal, sagen , g2 usw. Was ich tun möchte, ist, diese g-Werte aus der Schleife zu extrahieren und es aus der Schleife zu verwenden. Irgendeine Idee, wie man das macht?So extrahieren Sie Werte aus for-Schleife

I<-1   
S<-10  
h<-1   
lmd<-1  
v<-2    
n<-100 

A=as.integer((S-I)/h)  

U=A+1   

Sha=(A*h)+I  

sindeg=seq(from = I, to =Sha, length.out =U)  

D=((lmd)^v)*(((sindeg)^(-v))-((sindeg+h)^(-v)))  

tn=(as.integer(n*D))       

for(i in 1:A){ 
print(paste(tn[i])) 


atn=tn[i] 
k=sindeg[i]+h 
m=sindeg[i] 
print(paste("alt",m)) 
print(paste("üst",k)) 

g=runif(atn, m, k) 

print(paste(g)) 

} 

Antwort

1

Wenn ich Ihren Standpunkt zu verstehen, können Sie die aktuellen g-Werte an einen externen setzen (im Vergleich zu der Schleife) Liste, zum Beispiel hier extg:

I<-1   
S<-10  
h<-1   
lmd<-1  
v<-2    
n<-100 

A=as.integer((S-I)/h)  

U=A+1   

Sha=(A*h)+I  

sindeg=seq(from = I, to =Sha, length.out =U)  

D=((lmd)^v)*(((sindeg)^(-v))-((sindeg+h)^(-v)))  

tn=(as.integer(n*D))       

extg = list() 

for(i in 1:A) 
{ 
    print(paste(tn[i])) 


    atn=tn[i] 
    k=sindeg[i]+h 
    m=sindeg[i] 
    print(paste("alt",m)) 
    print(paste("üst",k)) 

` g=runif(atn, m, k) 

    extg[[i]] = g 

    print(paste(g)) 
} 

`

+0

perfekt funktioniert. Danke vielmals –

1

Sie kann anstelle von rohen for-Schleifen Iterationsfunktionen wie Funktionen von purrr verwenden. Hier mit map2 iterieren auf tn und sindeg

library(purrr) 
gs <- map2(tn, sindeg, function(atn, m) { 
    runif(atn, m, m + h) 
})