用于循环检索多于1个返回值(不正确的维数)

问题描述 投票:0回答:1

我正在尝试创建一个循环,根据需要返回多个值(可以处理任意长度)。

ltrGrades <- (0:100)

numGrades <- character(length(ltrGrades))

for (i in 1:length(ltrGrades ))
  if(any(ltrGrades[i] == 91:100)) {
    numGrades[i] <- "A"
  } else if (any(ltrGrades[i] == 80:90)) {
    numGrades[i] <- "B"
  } else if (any(ltrGrades[i] == 70:79)) {
    numGrades[i] <- "C"
  } else if (any(ltrGrades[i] == 60:69)) {
    numGrades[i] <- "D"
  } else if (any(ltrGrades[i] == 0:59)) {
    numGrades[i] <- "F"
  }

numGrades[98]
numGrades[82]
numGrades[76]
numGrades[61]
numGrades[98, 82, 76, 61]
Error in numGrades[98, 82, 76, 61] : incorrect number of dimensions
r loops vector return dimensions
1个回答
0
投票

您可以使用用户定义的函数和sapply来完成它

grading <- function(x)
{
  grades <- cut(x, 
                        breaks=c(0,seq(60,100,by=10)),
                        labels=c("F","D","C","B","A"))
  return(grades)
}

## your list of scores #####
score<- c(50,40,70,80,90)

##sapply to find the grades #######
sapply(score,grading)
© www.soinside.com 2019 - 2024. All rights reserved.