You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何使用switch()函数实现整数转星期并解决运行报错

错误原因

你代码的语法错误源于R语言switch()函数的参数命名规则:未加引号的纯数字(如1L)不能作为参数名使用,因此1L = "Sunday"这类写法不符合R语法要求,会触发语法错误。

修复方案

方案1:整数索引写法(无需命名分支)

当switch()的第一个参数为整数时,会直接按位置匹配后续分支,按1到7的顺序排列对应星期值即可:

x <- 3L
week_num2 <- switch(x,
           "Sunday",
           "Monday",
           "Tuesday",
           "Wednesday",
           "Thursday",
           "Friday",
           "Saturday",
           stop("Invalid input")
)
week_num2
# 输出:Tuesday

方案2:显式匹配写法(分支对应关系更清晰)

如果需要明确标注每个数值对应的星期,避免顺序写错,可将输入转为字符串,分支名用加引号的数字:

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

两种方案都符合使用switch()函数的要求,可根据使用习惯选择。

内容的提问来源于stack exchange,提问作者KapitanPilips

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:15:06