R Фактор

Факторы используются для хранения категориальных типов данных. Например, у человека пол имеет две категории: мужской и женский, а возраст можно разделить на несовершеннолетних и взрослых.

В R факторы создаются с помощью функции factor(), которая принимает вектор в качестве входного параметра.

Синтаксис функции factor():

factor(x = character(), levels, labels = levels,
       exclude = NA, ordered = is.ordered(x), nmax = NA)

Описание параметра:

  • x: вектор.
  • levels: укажите значения уровней. Если не указаны, они берутся из уникальных значений x.
  • labels: метки уровней. Если не указаны, используются соответствующие строки значений уровней.
  • exclude: символы для исключения.
  • ordered: логическое значение, указывающее, являются ли уровни упорядоченными.
  • nmax: верхний предел числа уровней.

Следующий пример преобразует символьный вектор в фактор:

Пример

x <- c("Male", "Female", "Male", "Male",  "Female")
sex <- factor(x)
print(sex)
print(is.factor(sex))

Вывод выполнения приведенного выше кода:

[1] 男 女 男 男 女
Levels: 男 女
[1] TRUE

В следующем примере уровни фактора устанавливаются вc('Male','Female'):

Пример

x <- c("Male", "Female", "Male", "Male",  "Female",levels=c('Male','Female'))
sex <- factor(x)
print(sex)
print(is.factor(sex))

Вывод выполнения приведенного выше кода:

levels1 levels2 
男      女      男      男      女      男      女 
Levels: 男 女
[1] TRUE

Метки уровней фактора

Далее мы используем параметр labels, чтобы добавить метки к каждому уровню фактора. Порядок символов в параметре labels должен соответствовать порядку символов в параметре levels, например:

Пример

sex=factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=ИСТИНА)
print(sex)

Вывод выполнения приведенного выше кода:

[1] female male   female female male  
Levels: female < male

Генерация уровней фактора

Мы можем использоватьgl()— функцию для генерации уровней фактора, и синтаксис следующий:

gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)

Описание параметра:

  • n: задает количество уровней.
  • k: задает количество повторений каждого уровня.
  • length: задает длину.
  • labels: задает значения уровней.
  • ordered: задает, упорядочены ли уровни, логическое значение.

Пример

v <- gl(3, 4, labels = c("Google", "Example","Taobao"))
print(v)

Вывод выполнения приведенного выше кода:

 [1] Google Google Google Google Example Example Example Example Taobao Taobao
[11] Taobao Taobao
Levels: Google Example Taobao
Другие расширения