Як перетворити число на множник у r (з прикладами)
Існує два методи, які можна використати для перетворення числової змінної на факторіальну змінну в R:
Спосіб 1: Використовуйте as.factor()
df$factor_variable <- as. factor (df$numeric_variable)
Це перетворить числову змінну на факторну змінну з кількістю рівнів, що дорівнює кількості унікальних значень у вихідній числовій змінній.
Спосіб 2: Використовуйте cut()
df$factor_variable <- cut(df$numeric_variable, 3 , labels=c(' lab1 ', ' lab2 ', ' lab3 '))
Цей конкретний приклад перетворить числову змінну на факторну змінну шляхом «розрізання» числової змінної на 3 рівновіддалені значення.
У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким кадром даних у R:
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C', 'D'),
points=c(12, 15, 22, 29, 35, 24, 11, 24))
#view data frame
df
team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24
#view structure of data frame
str(df)
'data.frame': 8 obs. of 2 variables:
$ team: chr "A" "A" "B" "B" ...
$ points: num 12 15 22 29 35 24 11 24
Приклад 1: Перетворення числа на множник за допомогою as.factor()
У наведеному нижче коді показано, як використовувати as.factor() для перетворення стовпця точки з числового на факторний:
#convert points column from numeric to factor
df$points <- as. factor (df$points)
#view updated data frame
df
team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24
#view updated structure of data frame
str(df)
'data.frame': 8 obs. of 2 variables:
$ team: chr "A" "A" "B" "B" ...
$ points: Factor w/ 7 levels "11","12","15",..: 2 3 4 6 7 5 1 5
Використовуючи функцію str() для візуалізації структури кадру даних, ми можемо побачити, що стовпець точок тепер є фактором із 7 різними рівнями, що представляють 7 унікальних числових значень у стовпці.
Приклад 2: Перетворення числа на коефіцієнт за допомогою cut()
У наведеному нижче коді показано, як використовувати cut() для перетворення стовпця точок із числової змінної на 3-рівневу факторну змінну:
#convert points column from numeric to factor with three levels
df$points <- cut(df$points, 3 , labels=c(' OK ', ' Good ', ' Great '))
#view updated data frame
df
team points
1 A OK
2 A OK
3 B Good
4 B Great
5 C Great
6 C Good
7 C OK
8 D Good
#view updated structure of data frame
str(df)
'data.frame': 8 obs. of 2 variables:
$ team: chr "A" "A" "B" "B" ...
$ points: Factor w/ 3 levels "OK","Good","Great": 1 1 2 3 3 2 1 2
З результату ми бачимо, що змінну Points було перетворено з числової змінної на факторну змінну з трьома рівнями та такими мітками:
- «ВСЕ ПРАВО»
- «ДОБРЕ»
- “чудово”
Зауважте, що в цьому прикладі ми вирішили використовувати три рівні, але ви можете розрізати числову змінну на скільки завгодно рівнів, замінивши 3 у функції cut() іншим значенням.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як перетворити число на символ у R
Як перетворити фактор на число в R
Як перетворити множник на символ у R