2017-09-26 3 views
0

아래 함수의 결과를 저장하려고합니다. 결과 만 인쇄 할 수 있지만 CSV 형식으로 저장할 수는 없습니다. 어떻게 이러한 결과를 CSV 파일에 저장할 수 있습니까? 미리 감사드립니다 !!!함수의 결과를 저장하는 방법?

calEAD=function(loan, R, final, startdate, first_enddate,enddate){ 
    I=loan*R 
    start=as.Date(startdate) 
    firstend=as.Date(first_enddate) 
    p=firstend-start 
    period=as.numeric(p)/365 
    EADabc=0 
    b=enddate-2017 
    for(i in (0:b)){ 
    EADabc=I/((1+R)**(i+period))+EADabc 
    print(EADabc)} 
} 

calEAD1=calEAD(6690012.88,0.0588,6690012.88, '2016-12-31','2017-08-29',2022) 
calEAD2=calEAD(385000.12,0.0588,385000.12, '2016-12-31','2017-09-11',2023) 

답변

2

EADabc의 모든 중간 결과를 for 루프 안에 보관하려는 것 같습니다.

calEAD=function(loan, R, final, startdate, first_enddate,enddate){ 
    I=loan*R 
    start=as.Date(startdate) 
    firstend=as.Date(first_enddate) 
    p=firstend-start 
    period=as.numeric(p)/365 
    EADabc=0 
    b=enddate-2017 

    # Define an empty vector 
    result = c() 
    for(i in (0:b)){ 
     EADabc=I/((1+R)**(i+period))+EADabc 

     # Append the current result to the vector 
     result = c(result,EADabc) 
    } 

    # Make the function return this vector 
    result 
} 

결과 :

calEAD1=calEAD(6690012.88,0.0588,6690012.88, '2016-12-31','2017-08-29',2022) 
calEAD2=calEAD(385000.12,0.0588,385000.12, '2016-12-31','2017-09-11',2023) 

> calEAD1 
[1] 378809 736581 1074484 1393622 1695037 1979713 
> calEAD2 
[1] 21755.57 42302.95 61709.24 80037.81 97348.51 113697.87 129139.28 

CSV 파일로 저장하려면이 수행

write.csv(x = calEAD1, file = "test.csv") 
+0

감사합니다! 그것은 완벽하게 작동합니다! 한 가지 더 질문 : 어떻게 모든 EAD1 EAD2 ... EAD5 결과를 하나의 단일 CSV 파일로 저장할 수 있습니까? – Francesco

+0

길이가 모두 같은가요? csv 파일은 일반적으로 표의 데이터 (열과 행)를 저장합니다. 여기서 행의 수는 모든 열에 대해 동일합니다. 그들이 같은 길이라면 :'allEAD = data.frame (calEAD1, calEAD2, ... etc)'그리고'write.csv'로 csv에 써라. –

0

당신이 경우이 같은 벡터로 연결할 수 write.csv 또는 write.table 함수를 사용할 수 있습니다.

for(i in (0:b)) 
{ 
EADabc=I/((1+R)**(i+period))+EADabc 
write.table(EADabc, file = "file_name.csv",sep = ",", col.names = T, append =T) 

} 

또는 write.csv (EADabc, 파일 = "file_name.csv", row.names = FALSE)

관련 문제