exponenta event banner

groupcounts

Количество элементов группы

Описание

пример

G = groupcounts(T,groupvars) вычисляет количество элементов в каждой группе данных в таблице или расписании и возвращает таблицу, содержащую группы, их счетчики и процент (от 0 до 100), который представляет каждый счетчик. Каждая группа определяется уникальной комбинацией переменных группирования в groupvars. Например, G = groupcounts(T,'Gender') возвращает таблицу, показывающую количество Male элементы, количество Female элементы и т.д. для любых других категорий переменной Gender.

пример

G = groupcounts(T,groupvars,groupbins) определяет способ складирования данных в groupvars. Например, G = groupcounts(T,'SaleDate','year') дает годовые показатели продаж и проценты в соответствии с SaleDate.

пример

G = groupcounts(___,Name,Value) указывает дополнительные свойства группировки, использующие одну или несколько пар имя-значение для любого из предыдущих синтаксисов. Например, G = groupcounts(T,'Category1','IncludeMissingGroups',false) исключает группу, созданную из отсутствующих categorical данные, указанные <undefined>.

B = groupcounts(A) возвращает вектор, содержащий счетчики групп для каждой уникальной комбинации векторов группировки, представленных в векторе столбца, матрице или массиве ячеек векторов столбца, A.

B = groupcounts(A,groupbins) складирует данные в соответствии с groupbins.

B = groupcounts(___,Name,Value) задает дополнительные свойства группировки с использованием одной или нескольких пар «имя-значение».

пример

[B,BG,BP] = groupcounts(A,___) также возвращает группы BG и проценты BP соответствующие подсчетам в B.

Примеры

свернуть все

Вычислите количество элементов группы на основе данных таблицы.

Создайте таблицу, содержащую информацию о пяти лицах.

Gender = ["male";"female";"male";"female";"male"];
Smoker = logical([1;0;1;0;1]);
Weight = [176;163;131;133;119];
T = table(Gender,Smoker,Weight)
T=5×3 table
     Gender     Smoker    Weight
    ________    ______    ______

    "male"      true       176  
    "female"    false      163  
    "male"      true       131  
    "female"    false      133  
    "male"      true       119  

Подсчитать количество элементов в каждой группе по полу.

G1 = groupcounts(T,'Gender')
G1=2×3 table
     Gender     GroupCount    Percent
    ________    __________    _______

    "female"        2           40   
    "male"          3           60   

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

G2 = groupcounts(T,{'Gender','Smoker'})
G2=2×4 table
     Gender     Smoker    GroupCount    Percent
    ________    ______    __________    _______

    "female"    false         2           40   
    "male"      true          3           60   

Для подсчета всех групп, включая группы с нулевыми элементами, укажите 'IncludeEmptyGroups' параметр со значением true.

G3 = groupcounts(T,{'Gender','Smoker'},'IncludeEmptyGroups',true)
G3=4×4 table
     Gender     Smoker    GroupCount    Percent
    ________    ______    __________    _______

    "female"    false         2           40   
    "female"    true          0            0   
    "male"      false         0            0   
    "male"      true          3           60   

Группировать данные по указанным ячейкам.

Создайте расписание, содержащее информацию о продажах за дни в течение одного месяца.

TimeStamps = datetime([2017 3 4; 2017 3 2; 2017 3 15; 2017 3 10;...
                       2017 3 14; 2017 3 31; 2017 3 25;...
                       2017 3 29; 2017 3 21; 2017 3 18]);
Profit = [2032 3071 1185 2587 1998 2899 3112 909 2619 3085]';
TotalItemsSold = [14 13 8 5 10 16 8 6 7 11]';
TT = timetable(TimeStamps,Profit,TotalItemsSold)
TT=10×2 timetable
    TimeStamps     Profit    TotalItemsSold
    ___________    ______    ______________

    04-Mar-2017     2032           14      
    02-Mar-2017     3071           13      
    15-Mar-2017     1185            8      
    10-Mar-2017     2587            5      
    14-Mar-2017     1998           10      
    31-Mar-2017     2899           16      
    25-Mar-2017     3112            8      
    29-Mar-2017      909            6      
    21-Mar-2017     2619            7      
    18-Mar-2017     3085           11      

Вычислите количество групп по общему количеству проданных товаров, объединяя группы в интервалы номеров товаров.

G = groupcounts(TT,'TotalItemsSold',[0 4 8 12 16])
G=3×3 table
    disc_TotalItemsSold    GroupCount    Percent
    ___________________    __________    _______

         [4, 8)                3           30   
         [8, 12)               4           40   
         [12, 16]              3           30   

Вычислите количество групп, сгруппированных по дням недели.

G = groupcounts(TT,'TimeStamps','dayname')
G=5×3 table
    dayname_TimeStamps    GroupCount    Percent
    __________________    __________    _______

        Tuesday               2           20   
        Wednesday             2           20   
        Thursday              1           10   
        Friday                2           20   
        Saturday              3           30   

Определите, какие элементы в векторе появляются несколько раз.

Создайте вектор столбца со значениями от 1 до 5.

v = [1 1 2 2 3 5 3 3 1 4]';

Использовать groupcounts для определения уникальных групп в векторе и подсчета членов группы.

[gc,grps] = groupcounts(v)
gc = 5×1

     3
     2
     3
     1
     1

grps = 5×1

     1
     2
     3
     4
     5

Определите, какие элементы в векторе появляются несколько раз, создав логический индекс для групп со счетом больше 1. Выполните индексирование в группы для возврата дублированных векторных элементов.

duplicates = grps(gc > 1)
duplicates = 3×1

     1
     2
     3

Вычислите количество групп для четырех групп на основе их пола и статуса курильщика.

Храните информацию о пациенте как три вектора различных типов.

Gender = ["male";"female";"male";"female";"male"];
Smoker = logical([1;0;1;0;1]);
Weight = [176;163;131;133;119];

Группировка по полу и статусу курильщика, вычисление количества групп. Укажите три выхода, чтобы также вернуть группы BG и проценты BP. B выходные данные содержат счетчики для каждой группы, и BP содержит проценты, представленные этими счетчиками.

[B,BG,BP] = groupcounts({Gender,Smoker},'IncludeEmptyGroups',true)
B = 4×1

     2
     0
     0
     3

BG=1×2 cell array
    {4x1 string}    {4x1 logical}

BP = 4×1

    40
     0
     0
    60

BG - клеточный массив, содержащий два вектора, которые описывают группы по мере просмотра их элементов. Например, первая строка BG{1} говорит, что пациенты в первой группе - женщины, и первый ряд BG{2} говорит, что они некурящие. Число для этой группы равно 2, найденное в соответствующей строке B.

BG{1}
ans = 4x1 string
    "female"
    "female"
    "male"
    "male"

BG{2}
ans = 4x1 logical array

   0
   1
   0
   1

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

свернуть все

Входные данные, указанные как таблица или расписание.

Входные векторы, заданные как вектор-столбец, матрица или массив ячеек векторов-столбцов, представляющих группирование векторов. Когда A является матрицей, векторы группирования являются столбчатыми.

Группирование переменных или векторов, указанных в качестве одного из параметров в этой таблице. Для входных данных таблицы или расписания, groupvars указывает, какие переменные следует использовать для вычисления групп в данных. Другие переменные, не указанные groupvars не работают и не проходят на выход.

ВыборОписаниеПримеры
Имя переменной

Вектор символов или скалярная строка, задающая имя переменной одной таблицы

'Var1'

"Var1"

Вектор имен переменных

Массив ячеек символьных векторов или строковый массив, где каждый элемент является именем переменной таблицы

{'Var1' 'Var2'}

["Var1" "Var2"]

Скаляр или вектор переменных индексов

Скаляр или вектор индексов табличных переменных

1

[1 3 5]

Логический вектор

Логический вектор, элементы которого соответствуют переменной таблицы, где true включает соответствующую переменную и false исключает его

[true false true]

Дескриптор функции

Дескриптор функции, принимающий переменную таблицы в качестве входного значения и возвращающий логический скаляр

@isnumeric

vartype нижний индекс

Подстрочный индекс таблицы, созданный vartype функция

vartype('numeric')

Пример: groupcounts(T,"Var3")

Схема Binning, заданная как одна из следующих опций:

  • 'none', указывая, что группы возвращаются только в соответствии с указанными переменными группировки

  • Список ребер ячейки, заданный как числовой вектор для переменных числовой группировки или как datetime вектор для datetime группирование переменных

  • Число ячеек, указанное как целочисленный скаляр

  • Длительность времени, заданная как скаляр типа duration или calendarDuration, указывая ширину ячейки (для datetime или duration группирование только переменных или векторов)

  • Массив ячеек, содержащий правила объединения для каждой переменной группировки или вектора

  • Ячейка времени для datetime и duration группирование только переменных или векторов, указанных как один из следующих символьных векторов:

    СтоимостьОписаниеТип данных
    'second'

    Каждая ячейка составляет 1 секунду.

    datetime и duration
    'minute'

    Каждая ячейка - 1 минута.

    datetime и duration
    'hour'

    Каждая ячейка составляет 1 часа.

    datetime и duration
    'day'

    Каждая ячейка составляет 1 календарный день. Это значение используется для перехода на летнее время.

    datetime и duration
    'week'Каждая ячейка составляет 1 календарную неделю.datetime только
    'month'Каждая ячейка составляет 1 календарный месяц.datetime только
    'quarter'Каждая ячейка составляет 1 календарный квартал.datetime только
    'year'

    Каждая ячейка составляет 1 календарный год. Это значение приходится на високосные дни.

    datetime и duration
    'decade'Каждая ячейка составляет 1 десятилетие (10 календарных лет).datetime только
    'century'Каждая ячейка составляет 1 век (100 календарных лет).datetime только
    'secondofminute'

    Ячейки находятся в секундах от 0 до 59.

    datetime только
    'minuteofhour'

    Ячейки находятся в минутах от 0 до 59.

    datetime только
    'hourofday'

    Бункеры - часы от 0 до 23.

    datetime только
    'dayofweek'

    Бункеры - дни от 1 до 7. Первый день недели - воскресенье.

    datetime только
    'dayname'Ячейки - это имена полных дней, такие как 'Sunday'.datetime только
    'dayofmonth'Бункеры - дни от 1 до 31.datetime только
    'dayofyear'Бункеры - дни от 1 до 366.datetime только
    'weekofmonth'Бункеры составляют недели от 1 до 6.datetime только
    'weekofyear'Бункеры - недели от 1 до 54.datetime только
    'monthname'Ячейки - это имена полных месяцев, такие как 'January'.datetime только
    'monthofyear'

    Бункеры - месяцы от 1 до 12.

    datetime только
    'quarterofyear'Бункеры - это кварталы от 1 до 4.datetime только

Если задано несколько переменных группирования или векторов, можно предоставить одно правило группирования, которое применяется ко всем переменным группирования, или массив ячеек, содержащий метод группирования для каждой переменной группирования, например {'none',[0 2 4 Inf]}.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: G = groupcounts(T,groupvars,groupbins,'IncludedEdge','right')

Включенное ребро ячейки, указанное как 'left' или 'right', указывающее, какой конец интервала ячейки включает в себя.

Эта пара имя-значение может быть указана только тогда, когда groupbins и значение применяется ко всем схемам объединения для всех переменных группирования или векторов.

Индикатор отсутствующих групп, указанный как числовой или логический 1 (true) или 0 (false). Если значение параметра равно true, то groupcounts отображает группы, состоящие из отсутствующих значений, таких как NaN. Если значение параметра равно false, то groupcounts не отображает отсутствующие группы значений.

Индикатор пустых групп, указанный как числовой или логический 0 (false) или 1 (true). Если значение параметра равно false, то groupcounts не отображает группы с нулевыми элементами. Если значение параметра равно true, то groupcounts отображает пустые группы.

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

свернуть все

Выходная таблица, возвращаемая как таблица, содержащая вычисленные группы, количество элементов в каждой группе и проценты, представленные счетчиками каждой группы. Для одной переменной группировки выходные группы сортируются в соответствии с порядком, возвращаемым unique функции с помощью 'sorted' вариант.

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

Группы для нетаблических входных данных, возвращаемые в виде вектора столбца или массива ячеек векторов столбцов. Для одного вектора группировки выходные группы сортируются в соответствии с порядком, возвращаемым unique функции с помощью 'sorted' вариант.

При предоставлении нескольких входных векторов BG - клеточный массив, содержащий векторы столбцов равной длины. Информацию о группе можно найти, посмотрев на элементы по всем векторам в BG. Счетчик для каждой группы содержится в соответствующей строке первого выходного аргумента B.

Процент количества групп для входных данных, не являющихся таблицами, возвращаемый в виде вектора столбца, содержащего процент каждого количества групп в B представляет собой. Проценты находятся в диапазоне [0 100].

Совет

  • При выполнении большого количества вызовов groupcounts, рассмотрите возможность преобразования переменных группировки в тип categorical или logical по возможности для повышения производительности. Например, при наличии переменной группирования типа char (например, Gender с элементами 'Male' и 'Female'), его можно преобразовать в категориальную переменную с помощью команды categorical(Gender).

Вопросы совместимости

развернуть все

В R2021a изменилось поведение

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

Представлен в R2019a