簡體   English   中英

將輸出保存在data.frame中以用於if-else語句

[英]save output in data.frame for if-else statement

我嘗試創建一個函數(稍后將與閃亮的r一起使用)。 目前,我無法將函數的結果存儲在數據框中。 到目前為止,我已經創建了以下代碼:

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

但是,只有添加打印功能(據我所知不會保存結果...),我才能得到此信息:

任何幫助將不勝感激! 最好的祝福,

這是您要尋找的行為嗎?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM