Со многими задачами в R лучше делать это, используя векторизованные функции, а не циклы.Вот два способа сделать то, что вы хотите, один с использованием базы R, а другой dplyr::case_when
.Обратите внимание, что cut
возвращает коэффициент, но вы всегда можете использовать as.character
.
numGrades <- c(66,02,99,59,82)
letGrades <- cut(
numGrades,
breaks = c(-Inf, 6:9, Inf) * 10,
labels = LETTERS[c(6, 4:1)],
right = FALSE
)
letGrades
library(dplyr)
letGrades <- case_when(
numGrades >= 90 ~ "A",
numGrades >= 80 ~ "B",
numGrades >= 70 ~ "C",
numGrades >= 60 ~ "D",
TRUE ~ "F"
)
letGrades