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

R基础:使用for循环与索引i编写最优代码实现分数转字母等级

R语言生成分数对应字母等级问题解决

你提交的代码是Python语法,不符合R的语法规范,因此R解释器无法识别代码关键字和结构,触发unexpected symbol报错。

原代码的核心错误点

  • R定义函数不用def关键字,正确写法是函数名 <- function(参数) { 函数体 }
  • R的代码块必须用大括号{}包裹,仅靠缩进无法区分代码层级
  • 函数参数定义为score,但函数内部又将score赋值为subject_total,变量名冲突会导致逻辑错误
  • Python风格的range(len())遍历、元组结构均不被R支持,R的索引默认从1开始,遍历列表可直接用for (元素 in 列表)语法

正确的R实现代码

getLetterGrade <- function(subject_total) {
  score <- round(subject_total)
  # 定义分数阈值与对应等级规则
  grade_rules <- list(
    c(80, "A"),
    c(70, "B"),
    c(60, "C"),
    c(50, "D"),
    c(0, "F")
  )
  # 匹配对应等级
  for (rule in grade_rules) {
    if (score >= as.numeric(rule[1])) {
      return(rule[2])
    }
  }
}

使用示例

单个分数查询

getLetterGrade(79.4) # 返回 "B"
getLetterGrade(80) # 返回 "A"
getLetterGrade(45) # 返回 "F"

批量生成分数对应的等级列表

# 输入你的科目总分列表
total_scores <- c(93, 76, 62, 55, 49, 81)
# 批量计算等级
letter_grades <- sapply(total_scores, getLetterGrade)
# 输出结果
print(letter_grades)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:36:04