У меня есть следующие данные и код, где я пытаюсь изменить порядок уровней (от a, b, c до c, a, b) символьного столбца, преобразуя его в фактор и изменение уровней. Однако он также меняет значения:Изменение уровней столбца символов в R
> mydf$new = c('a','b','a','c','b')
> mydf
vnum1 vnum2 vch1 new
1: 0.6 0.7 B a
2: -1.4 0.5 E b
3: 0.7 0.9 A a
4: -0.3 0.8 C c
5: -0.8 0.6 C b
>
> str(mydf)
Classes ‘data.table’ and 'data.frame': 5 obs. of 4 variables:
$ vnum1: num 0.6 -1.4 0.7 -0.3 -0.8
$ vnum2: num 0.7 0.5 0.9 0.8 0.6
$ vch1 : Factor w/ 4 levels "A","B","C","E": 2 4 1 3 3
$ new : chr "a" "b" "a" "c" ...
- attr(*, ".internal.selfref")=<externalptr>
>
> mydf$new = as.factor(mydf$new)
> str(mydf$new)
Factor w/ 3 levels "a","b","c": 1 2 1 3 2
> levels(mydf$new)= c('c','a','b')
> str(mydf$new)
Factor w/ 3 levels "c","a","b": 1 2 1 3 2
> mydf
vnum1 vnum2 vch1 new
1: 0.6 0.7 B c
2: -1.4 0.5 E a
3: 0.7 0.9 A c
4: -0.3 0.8 C b
5: -0.8 0.6 C a
Вся колонка «новая» была изменена. Как я могу сделать это правильно?
'фактор (mydf $ новые, уровни = с ("с", "а", "б"))' 'не as.factor' – thelatemail
Я думаю, что это будет «mydf [, new: = factor (c ('a', 'b', 'a', 'c', 'b'), levels = c (" c "," a "," b "))] []' –
@RichardScriven: Мне нужно изменить существующий столбец. – rnso