我遇到了编写成本函数的问题。 我得到的信息是:'查尔斯已经占领了他卖鲜鱼的市场摊位。每天早上他都会从批发商处购买鱼,每公斤4美元,最高100公斤 对于100公斤以上的任何东西,每公斤2.5美元。'
这是我到目前为止所写的:
cost= function(n)
{
if (n<=100)
cost = n*4
if (n>100)
cost = 2.5*(n-100) +100*4
}
cost(5)
它没有运行,我哪里出错了?我可以帮忙。
谢谢。
答案 0 :(得分:0)
我认为你只是忽略了从你的函数中返回一个值:
cost <- function(n) {
total <- 0
if (n <= 100) {
total <- n*4
}
else {
total = 2.5*(n-100) + 100*4
}
return(total)
}
cost(5)
R有规则确定是否存在隐式返回值以及它将是什么,但是使用显式return
语句总是一件好事,因为它清楚地表明了你的函数实际在做什么。 / p>
注意:使用ifelse
我们实际上可以在一行代码中处理整个逻辑:
cost <- ifelse(n <= 100, n*4, 2.5*(n-100) + 100*4)