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. The 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 - массив ячеек, содержащий два вектора, которые описывают группы, когда вы смотрите на их элементы rowwish. Например, первая строка 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")

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

  • '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 - массив ячеек, содержащий векторы-столбцы равной длины. Информацию о группе можно найти, посмотрев на элементы rowwish во всех векторах в BG. Счетчик для каждой группы содержится в соответствующей строке первого выходного аргумента B.

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

Совет

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

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

расширить все

Поведение изменено в R2021a

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

Введенный в R2019a