exponenta event banner

Добавить и удалить уровни категорий

В этом примере показано, как добавлять и удалять уровни из номинального или порядкового массива.

Примечание

nominal и ordinal типы данных массива не рекомендуются. Для представления упорядоченных и неупорядоченных дискретных нечисловых данных используйте тип данных Категориальные массивы.

Загрузить данные образца.

load('examgrades')

Множество grades содержит баллы ЕГЭ от 0 до 100 на пяти экзаменах для выборки из 120 учеников.

Создайте порядковый массив.

Назначьте каждому ученику буквенные оценки для каждого теста, используя эти категории.

Диапазон уклонаБуквенный класс
100+
90–99A
80–89B
70–79C
60–69D

letter = ordinal(grades,{'D','C','B','A','A+'},[],...
                 [60,70,80,90,100,100]);
getlevels(letter)
ans = 

     D      C      B      A      A+ 

Существует пять категорий классов в указанном порядке. D < C < B < A < A+.

Проверьте наличие неопределенных категорий.

Проверьте, есть ли какие-либо баллы ЕГЭ, которые не попадают в пять буквенных категорий.

any(isundefined(letter))
ans =

     1     0     1     1     0

Напомним, на каждого школьника приходится пять баллов ЕГЭ. Предыдущая команда возвращает логическое значение для каждого из пяти экзаменов, указывая, есть ли какие-либо баллы, которые <undefined>. Есть баллы за первый, третий и четвертый экзамены, которые <undefined>, то есть отсутствие уровня категории.

Определение элементов в неопределенных категориях.

Вы можете найти оценки экзамена, которые не имеют буквенного класса, с помощью isundefined логическое условие.

grades(isundefined(letter))
ans =

    55
    59
    58
    59
    54
    57
    56
    59
    59
    50
    59
    52

Баллы ЕГЭ, которые есть в 50-е годы, не имеют буквенной оценки.

Добавление новой категории.

Поставить все баллы, которые <undefined> в новую категорию с меткой D-.

letter(isundefined(letter)) = 'D-';
getlevels(letter)
Warning: Categorical level 'D-' being added. 
> In categorical.subsasgn at 55

ans = 

     D      C      B      A      A+      D- 
Порядковая переменная, letter, в конце добавлена новая категория.

Переупорядочить уровни категорий.

Изменить порядок категорий таким образом, чтобы D- < D.

letter = reorderlevels(letter,{'D-','D','C','B','A','A+'});
getlevels(letter)
ans = 

     D-      D      C      B      A      A+ 

Сравнить элементы.

Теперь, когда все оценки ЕГЭ имеют буквенный балл, подсчитайте, сколько студентов получили более высокий буквенный балл на втором тесте, чем на первом тесте.

sum(letter(:,2) > letter(:,1))
ans =

    32

Тридцать два ученика улучшили свой буквенный класс между первыми двумя экзаменами.

Ознакомьтесь с категориями.

Подсчитать количество A+ оценки в каждом из пяти экзаменов.

sum(letter=='A+')
ans =

     0     0     0     0     0

Нет A+ оценки по любому из пяти экзаменов.

Удалить категорию.

Удалить категорию A+ от порядковой переменной, letter.

letter = droplevels(letter,'A+');
getlevels(letter)
ans = 

     D-      D      C      B      A 
Категория A+ больше не входит в порядковую переменную, letter.

См. также

| |

Связанные примеры

Подробнее