English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Факторы используются для хранения данных различных типов категорий, например, пол человека может быть мужчиной и женщиной, а возраст может быть разделен на несовершеннолетних и взрослых.
Язык программирования R создает факторы с помощью функции factor(), где вектор используется в качестве входного параметра.
функция factor() синтаксис:
фактор(x = character(), levels, labels = levels, exclude = NA, ordered = is.ordered(x), nmax = NA)
gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)
x: вектор.
levels: заданные уровни, по умолчанию определяются уникальными значениями x.
labels:标签 уровней, по умолчанию используются строковые значения уровней.
exclude: исключаемые символы.
ordered: логическое значение, используемое для указания того, являются ли уровни упорядоченными.
nmax: верхний предел количества уровней.
Ниже приведен пример преобразования векторного типа строк в фактор:
x <- c("Мужчина", "Женщина", "Мужчина", "Мужчина", "Женщина") пол <- фактор(x) sex=factor(c('f','m','f','f','m'), levels=c('f','m'), labels=c('female','male'), ordered=TRUE) печать(является.фактором(пол))
print(v)
[1] Мужчина Женщина Мужчина Мужчина Женщина Levels: 男 女 Уровни: Мужчина Женщина
Ниже приведен пример установки уровней фактора как c('Мужчина', 'Женщина'):
x <- c("Мужчина", "Женщина", "Мужчина", "Мужчина", "Женщина", уровни = c('Мужчина', 'Женщина')) пол <- фактор(x) sex=factor(c('f','m','f','f','m'), levels=c('f','m'), labels=c('female','male'), ordered=TRUE) печать(является.фактором(пол))
print(v)
уровни1 уровни2 Мужчина Женщина Мужчина Мужчина Женщина Мужчина Женщина Levels: 男 女 Уровни: Мужчина Женщина
Метки уровней фактора
Далее мы используем параметр labels для добавления меток к каждому уровню фактора, порядок символов в параметре labels должен соответствовать порядку символов в параметре levels, например: sex=factor(c('f','m','f','f','m'), levels=c('f','m'), labels=c('female','male'), ordered=TRUE)
print(v)
print(sex) [1] female male female 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", "w3codebox", "Taobao"))
print(v)
Результат выполнения вышеуказанного кода: [1] Google Google Google Google w3codebox w3codebox w3codebox w3codebox Taobao Taobao [11] Taobao Taobao