Введение в факторы в 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Грузовик
РияМашина
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 () Code.

as.numeric(direction.factor)

Выход:

Рекомендуемые статьи

Это руководство к факторам в R. Здесь мы обсуждаем введение, Преимущества фактора, Как создать фактор в R вместе с результатами. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Spark SQL Dataframe
  2. Типы данных R
  3. Многомерная база данных
  4. AWS Data Pipeline