我在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或new f
调用此函数Evrytime我做了
w <- 254
calcBMI()
我得到了旧值
谢谢, Oded Dror
答案 0 :(得分:4)
你不断获得旧值,因为每次你调用calcBMI
里面的代码
w <- 204
f <- 6
# ... etc
被重新执行,因此您的BMI计算使用这些值。
你应该做的是设置你想要改变的值,作为函数中的参数,然后在中传递这些值。
即:
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
,其值为w
,f
和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
的值。
(您最初有bmi
和h
作为输入参数;我删除了它们,因为它们是从w
,f
和i
计算出来的,未指定由用户作为BMI计算的输入。)
答案 1 :(得分: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)
这是家庭作业吗?