0

我在 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 调用这个函数

每次我做

w <- 254

calcBMI()

我得到了旧值

谢谢,奥德德罗尔

4

2 回答 2

4

您不断获得旧值,因为每次调用calcBMI其中的代码时

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

重新执行,因此您的 BMI 计算使用这些值。

您应该做的是将您想要更改的值设置为函数中的参数,然后将这些值传递给.

IE:

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

然后你用的值调用 ,你想要:calcBMIwfi

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

这样,BMI 计算从参数值中获取wfi的值。

(您最初将bmih作为输入参数;我删除了它们,因为它们是从 和 计算出来的w,用户没有将它们指定为 BMI 计算的输入)。fi

于 2013-05-28T01:42:52.610 回答
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)

这是作业吗?

于 2013-05-28T01:43:34.003 回答