2013-05-28 36 views
0

動態變量我創建了R A函數看起來像這樣聲明中的R

calcBMI <- function (w,f,i,bmi,h) { 

    w <- 204 

    f <- 6 

    i <- 1 

    h <- f * 12 + I 

    bmi <- (w/(h * h)) * 703 

    return(bmi) 

} 

#Call Function 
calcBMI() 

一切都正常運行

我的問題是如何調用新的價值w或新這個函數f

Evrytime我做

w <- 254 

calcBMI() 

我得到了舊值

感謝, 俄德德羅爾

回答

4

你不斷收到舊值,因爲每次你打電話calcBMI的代碼,它裏面的位

w <- 204 
f <- 6 
# ... etc 

被重新執行,那麼你的體重指數計算中使用這些值。

你應該做的是設置任何你想改變的值作爲你函數中的參數,然後將這些值傳遞給

即:

calcBMI <- function (w, f, i) { 
    h <- f * 12 + i # <-- note: in your original post this was 'I' which is not defined?  
    bmi <- (w/(h * h)) * 703 
    return(bmi)  
} 

然後你電話calcBMI你想要的wf的價值觀和i

calcBMI(w=204, f=6, i=1) ## 26.91162 
calcBMI(w=254, f=6, i=1) ## 33.5076 
# and so on ... 

這樣的BMI計算需要的w值,f ,和i中的參數值。

(你必須bmih如最初輸入參數;我刪除它們,因爲它們是從wfi,而不是由用戶指定作爲輸入給BMI計算來計算)。

4

我會建議:

calcBMI <- function (w=204,f=6,i=1) { 
    h <- f * 12 + i ## note R is case sensitive: i != I 
    w/h^2 * 703 ## value of last expression gets returned 
} 

然後:

calcBMI() ## use default values 
calcBMI(w=254) 

這是功課?

+0

對不起,但謝謝,不,不是我的作業,它只是爲了好玩學習R –