Въведение в факторите в R
В R можем да обработваме различни видове променливи. Можем също да приемем фактора като вид променлива, която приема само ограничен брой присвоена стойност; такава променлива също се нарича категорична променлива.
Предимства на един фактор
- Може да съхранява както цели числа, така и низове
1. В случай на цели числа
data = c(5, 6, 6, 6, 7, 5, 7, 6, 7, 5, 6, 7)
factor_data = factor(data)
factor_data
продукция
2. В случай на струни
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"))
y
продукция
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
продукция
- Много полезно, когато колоните имат ограничен брой уникални стойности
име | Начин на пътуване |
Джон | Камион |
гъсталак | Кола |
завет | цикъл |
Мусан | велосипед |
Lozy | Камион |
Riya | Кола |
MIJ | цикъл |
Тук имаме ограничен брой уникални стойности в колона 2.
- Помага за коригиране на низовете с грешки в грешки (въвеждане на грешки).
Как да създадете фактор в R?
Можем да създадем фактори, като използваме кодови фактори ().
Разгледайте повече за фактора ().
factor(x = character(), levels, labels = levels, ordered = is.ordered(x))
Където,
X е набор от категорични данни. Както вече обсъдихме, това трябва да е низ или цели числа.
Нивата са набор от стойности, които могат да бъдат взети от X. Нивата съдържат всички уникални стойности, налични в колоната (x).
Етикетите като име предполагат етикетиране на данните, налични на X.
Подреденият определя дали нивата трябва да бъдат подредени в някакъв конкретен ред.
Пример №1
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike"))
y
изход:
Пример №2
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
изход:
В пример 2 можем да видим, че можем да определим и „Нива“.
Сега нека да видим повече за факторите, използвайки Str (y).
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
изход:
str(y)
изход:
Ясно се вижда, че факторите се съхраняват като цели числа вектори, а нивата се съхраняват като вектор символ, а отделните елементи всъщност се съхраняват като индекси.
- Сега ще видим как да получите достъп до компоненти на фактор
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
изход:
y(2) # helps to access 2nd element
изход:
x(c(3, 4)) # helps to access 3rd and 4th element
продукция
x(-1) # access all except 1st element
изход:
- Сега ще видим как да променим фактор.
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
изход:
y(3) = "Truck" #modifty third element
y
продукция
Добавяне към фактор:
y(10) = "Car"
y
изход:
Моля, обърнете внимание, че не можем да зададем нищо във фактор, който не е част от нивата.
y(4) = "Plane"Warning message:In `(<-.factor`(`*tmp*`, 4, value = "Plane") : invalid factor level, NA generated
изход:
В този пример можем да видим, че „Самолетът“ не е част от нашето ниво, затова получихме предупредително съобщение, което казва, че „Самолетът“ е невалидно ниво на фактор.
Преобразуване на данни във фактор
Данните са на разположение в много и е трудно всеки път да запишете цялостна дума в кода, така че за това първо ще преобразуваме данните във фактор, след това преобразуваме фактора в символ или число според нашето удобство.
Нека сега работим върху някои реални данни. Където имаме 50 наблюдения и кандидатите дават своята насока на работа. Подобно на Джон пътува на север заради служебните си задължения, или Сам пътува в посока Юг за работните си задължения.
direction <- c("West", "East", "North", "West", "South", "East", "South", "East", "South", "East", "South", "West", "South", "East", "South", "East", "South", "South", "West", "East", "South", "West", "South", "East", "South", "East", "South", "West", "East", "South", "West", "South", "East", "South", "East", "South", "South", "West", "South", "West", "East", "South", "West", "South", "East", "South", "East", "South", "South", "West")
direction.factor = factor(direction)
direction.factor
изход:
Нива: Изток Север Юг Запад
Сега, ако искаме да преобразуваме фактора във вектор на знака:
Ще използваме код as.character ().
as.character(direction.factor)
изход:
Или искаме да преобразуваме фактора в числов вектор:
Ще използваме as.numeric () код.
as.numeric(direction.factor)
изход:
Препоръчителни статии
Това е ръководство за Фактори в R. Тук обсъждаме въвеждането, Предимствата на фактора, Как да създадем фактор в R, заедно с Резултатите. Можете също да прегледате и другите ни предложени статии, за да научите повече -
- Spark SQL Dataframe
- R Типове данни
- Многоизмерна база данни
- AWS тръбопровод за данни