首页 > 解决方案 > 为什么 R 忽略我的 return(paste()) 命令?

问题描述

我正在做一个 R 函数练习,在这个练习中,我们需要创建一个名为 bar_count 的函数,它返回完成订单所需的最少铝条,只有两种类型的铝条,5 公斤条和 1 公斤条。如果订单有小数,则该函数应返回 F,它只能是精确数字。

这是我想出的:

bar_count <- function(kg){

  num.of.five <- 0

  num.of.one <- 0

  five.kg <- kg/5

  if (kg%%5 == 0){

    num.of.five <-num.of.five + five.kg

  } else if(kg%%5 != trunc(kg%%5)){

    return(F)

  }else if (kg%%5 >= 1) {

    num.of.five <- num.of.five  + trunc(five.kg)

    num.of.one <- num.of.one + ((kg%%5))

  }

num.of.bars <- num.of.five + num.of.one

return (num.of.bars)

return(paste('qty of 5kg bars is:', num.of.five))

return(paste('qty of 1kg bars is:',num.of.one))

}

我遇到的问题是最后两个命令,我向 R 询问return(paste())5 公斤批次和 1 公斤批次的铝条数量,但是它不返回这两个中的任何一个,它只返回总量,我有试过了,print()但也没有用。

感谢您花时间回答

标签: r

解决方案


return从 R 函数返回后,将不会执行语句之外的任何代码。大概你想在返回之前打印,所以尝试使用这个版本:

bar_count <- function(kg) {
    // ...

    print(paste('qty of 5kg bars is:', num.of.five))
    print(paste('qty of 1kg bars is:', num.of.one))

    return(num.of.bars)
}

推荐阅读