【问题标题】:How to use switch() function in R?如何在 R 中使用 switch() 函数?
【发布时间】:2023-03-30 21:20:02
【问题描述】:

我要制作的程序获取一个整数作为输入,输出是与整数对应的星期几(例如输入:x

x <- 5L
week_num2 <- switch(x,
           1L = "Sunday",
           2L = "Monday",
           3L = "Tuesday",
           4L = "Wednesday",
           5L = "Thursday",
           6L = "Friday",
           7L = "Saturday",
           stop("Invalid input")
)
week_num2

【问题讨论】:

    标签: r switch-statement


    【解决方案1】:

    R 中的switch() 语句被解析为函数调用。由于您不能使用像1L 这样的参数名称,因此需要以不同的方式编写语句。您使用从 1 到 7 的所有值,因此您可以省略参数名称:

    week_num2 <- switch(x,
           "Sunday",
           "Monday",
           "Tuesday",
           "Wednesday",
           "Thursday",
           "Friday",
           "Saturday"
    )
    

    (将数字作为注释包含在内可能是个好主意,以使其更易于阅读。)此表单不支持默认值;如果你不给它一个范围内的数字,它将返回NULL

    使用它的另一种方法(我推荐)是使用字符值表达式,例如

    week_num2 <- switch(as.character(x),
           "1" = "Sunday",
           "2" = "Monday",
           "3" = "Tuesday",
           "4" = "Wednesday",
           "5" = "Thursday",
           "6" = "Friday",
           "7" = "Saturday",
           stop("Invalid input")
    )
    

    在这种形式中,一个未命名的参数被用作默认值。

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多