2017-09-24 1 views
0

코드는 아래와 같습니다. 이 코드는 g 값을 두 번 이상 생성합니다. 예를 들어 g1, g2 등입니다. 루프에서이 g 값을 추출하여 루프 밖으로 사용하고 싶습니다. 어떻게 그렇게 생각하십니까? 내가 요점을 이해하면for 루프에서 값을 추출하는 방법

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)) 

} 

답변

1

, 여기 EXTG 예를 들어, 목록 (루프에 비해) 외부로 현재 g 값을 넣을 수 있습니다 :

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

가 완벽하게 작동에 반복 map2를 사용하여. 많은 감사 –

1

당신 raw for for 루프 대신 purrr의 함수와 같은 반복 함수를 사용할 수 있습니다. 여기 tnsindeg

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