grp2idx

Создайте индексный вектор из группирующей переменной

Синтаксис

[g,gN] = grp2idx(s)
[g,gN,gL] = grp2idx(s)

Описание

[g,gN] = grp2idx(s) создает индексный вектор g из группирующей переменной s. Вывод g является вектором целочисленных значений от 1 до номера K отличных групп. gN является массивом ячеек из символьных векторов, представляющим список названий группы.

пример

[g,gN,gL] = grp2idx(s) также возвращает вектор-столбец gL, представляющий список уровней группы с совпадающим типом данных как s.

Примеры

свернуть все

Создайте категориальный вектор при помощи discretize и преобразуйте его в индексный вектор при помощи grp2idx.

Загрузите набор данных hospital и преобразуйте возрасты в hospital.Ages к категориальным значениям, представляющим возрасты к десятилетию.

load hospital
edges = 0:10:100; % Bin edges
labels = strcat(num2str((0:10:90)','%d'),{'s'}); % Labels for the bins
s = discretize(hospital.Age,edges,'Categorical',labels);

Отобразите возрасты и группы возрастов для первых пяти выборок.

ages = hospital.Age(1:5)
ages = 5×1

    38
    43
    38
    40
    49

groups = s(1:5)
groups = 5x1 categorical array
     30s 
     40s 
     30s 
     40s 
     40s 

Создайте индексный вектор из категориального векторного s.

[g,gN,gL] = grp2idx(s);

Отобразите индексные значения, соответствующие первым пяти выборкам.

g(1:5)
ans = 5×1

     4
     5
     4
     5
     5

Воспроизведите входной параметр s с помощью вывода gL.

gL(g(1:5))
ans = 5x1 categorical array
     30s 
     40s 
     30s 
     40s 
     40s 

Используйте gN(g), чтобы воспроизвести входной параметр s как массив ячеек из символьных векторов.

gN(g(1:5))
ans = 5x1 cell array
    {'30s'}
    {'40s'}
    {'30s'}
    {'40s'}
    {'40s'}

Входные параметры

свернуть все

Группирующая переменная, заданная как категориальное, числовое, логическое, datetime, или вектор длительности, массив строк, массив ячеек из символьных векторов или символьный массив с каждой строкой, представляющей метку группы.

grp2idx обрабатывает NaN s (числовой, длительность, или логический), '' (пустые символьные массивы или массивы ячеек из символьных векторов), "" (пустые строки), значения <missing> (строка), (категориальные) значения <undefined>, и NaT s (datetime) в s как отсутствующие значения и возвращает NaN s в соответствующих строках g. Выходные параметры gN и gL не включают записи для отсутствующих значений.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | categorical | datetime | duration

Выходные аргументы

свернуть все

Индекс группы, возвращенный как положительный целочисленный вектор со значениями от 1 до номера K отличных групп в s.

Список названий группы, возвращенных как массив ячеек из символьных векторов.

Порядок gN зависит от типа данных группирующей переменной s.

  • Для числовых и логических векторов порядок является отсортированным порядком s.

  • Для категориальных векторов порядок является порядком categories(s).

  • Для других типов данных порядок является порядком первого выступления в s.

gN(g) воспроизводит содержимое s в массиве ячеек.

Список уровней группы, возвращенных как совпадающий тип данных как s: категориальное, числовое, логическое, datetime, или вектор длительности, массив ячеек из символьных векторов или символьный массив с каждой строкой, представляющей метку группы. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)

Набор групп и их порядка в gL совпадает с теми в gN, но gL имеет совпадающий тип данных как s.

Если s является символьной матрицей, то gL(g,:) воспроизводит s; в противном случае gL(g) воспроизводит s.

Расширенные возможности

Представлено до R2006a