Я хотел бы заменить диапазон целочисленных значений строковым символом на основе условий.
Например, у меня есть фрейм данных
Gender Grade Indus
1 1 610 15
2 1 110 29
3 2 210 32
4 1 250 20
5 2 420 37
6 2 430 19
7 1 450 25
Я хотел бы заменить значения в столбце «Оценка» со строковым символом, основанным на следующих условиях:
prima =c(110,210:250,610)
secon =c(420,440:460)
vocat =c(430,470)
Если число в «Оценке» попадает в приму, например, если Оценка == 610, я хотел бы изменить число к слову «Первичный».
Я пытался использовать ...
mydf$Grade[mydf$Grade == prima] <- "Primary"
mydf$Grade[mydf$Grade == secon] <- "Secondary"
mydf$Grade[mydf$Grade == vocat] <- "Vocational"
, но это не сработало. Ошибка не возвращалась, но лишь очень немногие значения изменились на «Первичные» или «Вторичные», оставив кучу других чисел без изменений.
Я также пытался ...
for (i in mydf$Grade) {
if (i %in% prima) mydf$Grade <- "Primary"
else if (i %in% secon) mydf$Grade <- "Secondary"
else if (I %in% vocat) mydf$Grade <- "Vocational"
}
, который также не работал. Все значения в «Grade» вместо этого превратились в «Primary». Эти два метода я опробовал на реальных данных, где мне также нужно 10 * 10 лет.
Я не знаю, что я сделал не так. Я попробовал этот метод, и он работал, когда я хотел заменить на NaN; однако, это не работает, когда я хотел заменить другие целые или строковые символы. Любые советы будут очень цениться.