У меня есть data.frame с факторной переменной 3 уровня в R
'data.frame': 23848 obs. of 14 variables:
$ Factor_var : Factor w/ 3 levels "AAA","BBB",..: 1 1 3 3 3 3 2 2 2 2 ...
Я хочу перезаписать одно из значений другой строкой с помощью функции grepl, но только если это одно из значений, иначе оно должно остаться прежним
DF$Factor_var <- ifelse(grepl("AAA", DF$Factor_var), "ZZZ", DF$Factor_var)
После запуска этого преобразования я возвращаю переменную chr только со строковыми значениями, которые я только что ввел, и значениями, относящимися к значению уровня старых строк.
'data.frame': 23848 obs. of 14 variables:
$ Factor_var : chr "ZZZ" "ZZZ" "3" "3" ...
тогда как я все еще ожидаю факторную переменную с уровнями "ZZZ", "BBB"... и т.д.
Почему это? Я просто не могу обойти эту проблему!
СПАСИБО
factor
, изменитеlevels
, т.е.levels(DF$Factor_var) <- ifelse(grepl("AAA", levels(DF$Factor_var)), "ZZZ", levels(DF$Factor_var))
- person akrun   schedule 27.09.2016