2014-10-28 3 views
0

나는 (나중에 shiny r을 사용하기 위해 사용될) 함수를 만들려고합니다. 순간에 내 기능에서 결과를 데이터 프레임에 저장하지 못했습니다.if-else 문에 대해 data.frame에 결과를 저장하십시오.

f_expccm <- function(n,h,m,rr,dr,mc,ac) { 


for(i in 1:6) { 

eccm[i]<- vector(length=1) 

if(i==1){ 

    eccm[i] <- -ac 
print(eccm[i]) 


} 
else{ 


x <- h*n 
nm <- x*m 
pc <- nm-mc 
crr <- 1*rr^(i-1) 
cdr <- 1/(1+dr)^(i-1) 

    eccm[i] <- pc*cdr*crr 
print(eccm[i]) 



} 

output <- cbind(eccm[i]) 
} 

} 
    output 
    qt <- f_expccm(10,250,.4,0.95,0.10,10,500) 

나는 다음과 같은 항목과 출력 data.frame 얻을 것으로 기대하고있다 : 그러나

[1] -500 
    [1] 855 
    [1] 738.4091 
    [1] 637.7169 
    [1] 550.7555 
    [1] 475.6525 

가 내가 추가하는 경우이받을 만 할 생각을 지금까지 나는 다음과 같은 코드를 만들었습니다 인쇄 기능 (내 지식은 결과를 저장하지 않습니다 ...) :

어떤 도움을 크게 주시면 감사하겠습니다! 감사합니다.

+0

return 문을 사용하면 함수가 종료됩니다! – Henrik

+0

@Henrik, 고맙습니다.하지만 데이터 프레임 (출력)은 여전히 ​​빈 상태로 남아 있습니다. – user3532423

답변

0

찾고 계신가요?

f_expccm <- function(n,h,m,rr,dr,mc,ac) { 

    eccm <- vector(length=6) 
    eccm[1] <- -ac 

    for(i in 2:6) { 
    x <- h*n 
    nm <- x*m 
    pc <- nm-mc 
    crr <- 1*rr^(i-1) 
    cdr <- 1/(1+dr)^(i-1) 

    eccm[i] <- pc*cdr*crr 
    } 
    df <- data.frame(eccm) 
    return(df) 
} 

> qt <- f_expccm(10,250,.4,0.95,0.10,10,500) 
> qt 
    eccm 
1 -500.0000 
2 855.0000 
3 738.4091 
4 637.7169 
5 550.7555 
6 475.6525 
+0

감사합니다. 예, 그렇습니다. 그러나 나는 data.frame으로 직접 출력을 저장하고 싶습니다 -이게 가능합니까? 이상적으로이 return (eccm) 벡터를 data.frame으로 서식 지정하고 싶습니다. 이것이 가능합니까? – user3532423

+0

예 답변을 편집하여 대신 데이터 프레임을 반환합니다. – Henrik

관련 문제