r - 编写成本函数
问题描述
我有一个涉及编写成本函数的问题。我得到的信息是:“查尔斯接管了一个卖鲜鱼的市场摊位。每天早上,他从批发商那里购买鱼,价格为每公斤 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)
它没有运行,我哪里出错了?请问我有什么帮助。
谢谢你。
解决方案
我认为您只是忽略了从函数返回值:
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)
推荐阅读
- python - 使用字节表示法的无效 \x 转义
- javascript - 如何在Javascript中动态编写(反应项目)
- c# - C#:编组包含重新访问的数组的结构
- android - Flutter 无法使用混淆命令构建 apk
- python - 如何在 django 中正确表示“仓库” - n+1 个问题
- python - Unpivot df 列到多列和多行
- django - Cannot use 'in' operator to search for 'length' in 'id_cliente'
- python - Overlaying data in a candlestick chart using matplotlib
- ansible - Avoid indentation on a newline after a set of if+for in a Jinja2 template
- centos - On centos 8 How to create a bridge after a vlan?