Въведение в факторите в 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, заедно с Резултатите. Можете също да прегледате и другите ни предложени статии, за да научите повече -

  1. Spark SQL Dataframe
  2. R Типове данни
  3. Многоизмерна база данни
  4. AWS тръбопровод за данни

Категория: