【问题标题】:How to write an efficient function with multiple conditions in R如何在 R 中编写具有多个条件的高效函数
【发布时间】:2016-05-19 23:09:26
【问题描述】:

我正在编写一个 R 函数来执行此操作

我特别想知道处理第二种情况的最佳方法。
我目前在函数中使用if 语句;使用嵌套的if 语句处理第二个条件。 我很好奇这是否是处理此类数学函数的最佳(最快、最优雅)方法。

#Parameters
K.bc <- 10;K.bk<-100
W2.fg <- W2.fp <- 1000


#Function
F.2.sink <- function(K.bc, K.bk, W2.fg,W2.fp){ 
  if(W2.fg + W2.fg < K.bc) 
  {return(0)}

  if(K.bc < (W2.fg + W2.fg)) 
    if( W2.fg + W2.fg < (K.bc+K.bk))
       {return(W2.fg + W2.fp - K.bc)}

  if(W2.fg + W2.fp >= (K.bc+K.bk))
  {return(K.bk)}
}

F.2.sink(K.bc,K.bk,W2.fg,W2.fp)

【问题讨论】:

  • 检查第二个条件时,您已经检查过它不满足第一个条件。你不需要另一个 if 来再次检查同样的事情。
  • 像这样的代码审查问题也应该发布在代码审查网站而不是这里。
  • @Dason 我不认为这真的属于 CR,他只是在问一件事。我们不会拒绝他,但可能不是最好的选择。

标签: r function if-statement conditional-statements


【解决方案1】:

看看: Case Statement Equivalent in Rmemisc中有这个功能cases 不确定是否快,但至少可读性更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多