r - 如果函数中的格子

标签 r

我正在尝试创建一个当变量处于不同范围时返回不同值的函数。

    nhpp_lambda <- function(t) {
  for (t in 1:365) {
    if (t >= "1" && t <= "59")
      lambda = 20.83
    else if (t >= "60" && t <= "151") 
      lambda = 11.02
    else if (t >= "152" && t <= "243")
      lambda = 11.68
    else if (t >= "244" && t <= "334")
      lambda = 26.41
    else if (t >= "335" && t <= "365")
      lambda = 20.83
  }
  return(lambda)
}

这怎么行不通?它仍然总是返回 20.83??

最佳答案

在您定义的函数中,您在循环完成后返回 lambda 的值,并且在循环的最后一次迭代中,该值始终为 20.83。如果删除循环,它将起作用,例如,

nhpp_lambda <- function (t) {
    if (t >= 1 && t <= 59)
        lambda = 20.83
    else if (t >= 60 && t <= 151) 
        lambda = 11.02
    else if (t >= 152 && t <= 243)
        lambda = 11.68
    else if (t >= 244 && t <= 334)
        lambda = 26.41
    else if (t >= 335 && t <= 365)
        lambda = 20.83
    return(lambda)
}

nhpp_lambda(5)
nhpp_lambda(55)
nhpp_lambda(120)
nhpp_lambda(285)
nhpp_lambda(340)

关于r - 如果函数中的格子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52553494/

相关文章:

r - 在数据帧中将时变变量设置为其初始值

r - R 中的重复行,其行重复时必须改变的列

r - 将数据从 Atom 兼容的数据源导入到 R

r - AWS dynamodb 对 "R"编程语言的支持

r - 如何在 R 中查找多年的季节性平均值

r - 链接 R 中同一时间窗口内发生的值

r - 基础 R 中缺失值的面积图

从数据框中删除具有相同值的列

R - (Tidyverse) 根据列整数将一行变成多行

R data.table 删除以 "_nd"结尾的列