首页 > 解决方案 > 编写成本函数

问题描述

我有一个涉及编写成本函数的问题。我得到的信息是:“查尔斯接管了一个卖鲜鱼的市场摊位。每天早上,他从批发商那里购买鱼,价格为每公斤 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)

它没有运行,我哪里出错了?请问我有什么帮助。

谢谢你。

标签: rfunction

解决方案


我认为您只是忽略了从函数返回值:

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语句总是一件好事,因为它可以清楚地说明你的函数实际上在做什么。

注意:使用ifelse我们实际上可以在一行代码中处理整个逻辑:

cost <- ifelse(n <= 100, n*4, 2.5*(n-100) + 100*4)

推荐阅读