groupsummary

Вычисления сводных данных группы

Синтаксис

G = groupsummary(T,groupvars)
G = groupsummary(T,groupvars,method)
G = groupsummary(T,groupvars,method,datavars)
G = groupsummary(T,groupvars,groupbins)
G = groupsummary(T,groupvars,groupbins,method)
G = groupsummary(T,groupvars,groupbins,method,datavars)
G = groupsummary(___,Name,Value)
B = groupsummary(A,groupvars,method)
B = groupsummary(A,groupvars,groupbins,method)
B = groupsummary(___,Name,Value)
[B,BG] = groupsummary(A,___)
[B,BG,BC] = groupsummary(A,___)

Описание

пример

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

пример

G = groupsummary(T,groupvars,method) также возвращает вычисления, заданные в method. Например, G = groupsummary(T,'Gender','median') возвращает медиану всех переменных негруппировки в T для обоих полов, в дополнение к числу элементов в каждой группе.

пример

G = groupsummary(T,groupvars,method,datavars) задает переменные, чтобы применить вычисления к.

G = groupsummary(T,groupvars,groupbins) задает как к интервалу данные в groupvars. Например, G = groupsummary(T,'SaleDate','year') дает счета группы для всех продаж в T в течение каждого года согласно группирующей переменной SaleDate.

G = groupsummary(T,groupvars,groupbins,method) интервалы данные согласно groupbins для вычислений заданы в method.

пример

G = groupsummary(T,groupvars,groupbins,method,datavars) интервалы данные согласно groupbins и задают переменные, чтобы применить вычисления к.

пример

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

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

пример

B = groupsummary(A,groupvars,groupbins,method) интервалы данные согласно groupbins.

пример

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

[B,BG] = groupsummary(A,___) также возвращает группы для каждого вектора группировки.

пример

[B,BG,BC] = groupsummary(A,___) также возвращает счета группы для каждой группы.

Примеры

свернуть все

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

Создайте таблицу T, которая содержит информацию приблизительно пять человек.

Gender = ["male";"female";"female";"male";"male"];
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
T = table(Gender,Age,Height,Weight)
T=5×4 table
     Gender     Age    Height    Weight
    ________    ___    ______    ______

    "male"      38       71       176  
    "female"    43       69       163  
    "female"    38       64       131  
    "male"      40       67       133  
    "male"      49       64       119  

Вычислите количества штекеров и розеток путем определения 'Gender' как группирующей переменной.

G = groupsummary(T,'Gender')
G=2×2 table
     Gender     GroupCount
    ________    __________

    "female"        2     
    "male"          3     

Вычислите средний возраст, высоту и вес розеток и штекеров отдельно.

G = groupsummary(T,'Gender','mean')
G=2×5 table
     Gender     GroupCount    mean_Age    mean_Height    mean_Weight
    ________    __________    ________    ___________    ___________

    "female"        2            40.5         66.5            147   
    "male"          3          42.333       67.333         142.67   

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

G = groupsummary(T,'Gender','median','Height')
G=2×3 table
     Gender     GroupCount    median_Height
    ________    __________    _____________

    "female"        2             66.5     
    "male"          3               67     

Табличные данные группы с помощью двух группирующих переменных.

Создайте таблицу T, которая содержит информацию приблизительно пять человек.

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  

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

G = groupsummary(T,{'Gender','Smoker'},'mean','Weight')
G=2×4 table
     Gender     Smoker    GroupCount    mean_Weight
    ________    ______    __________    ___________

    "female"    false         2             148    
    "male"      true          3             142    

Установите значение параметров 'IncludeEmptyGroups' на true в порядке видеть все комбинации группы, включая пустые единицы.

G = groupsummary(T,{'Gender','Smoker'},'mean','Weight','IncludeEmptyGroups',true)
G=4×4 table
     Gender     Smoker    GroupCount    mean_Weight
    ________    ______    __________    ___________

    "female"    false         2             148    
    "female"    true          0             NaN    
    "male"      false         0             NaN    
    "male"      true          3             142    

Данные группы согласно заданным интервалам.

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

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      

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

format shorte
G = groupsummary(TT,'TotalItemsSold',[0 4 8 12 16],'mean','Profit')
G=3×3 table
    disc_TotalItemsSold    GroupCount    mean_Profit
    ___________________    __________    ___________

         [4, 8)            3.0000e+00    2.0383e+03 
         [8, 12)           4.0000e+00    2.3450e+03 
         [12, 16]          3.0000e+00    2.6673e+03 

Вычислите среднюю прибыль, сгруппированную за день недели.

G = groupsummary(TT,'TimeStamps','dayname','mean','Profit')
G=5×3 table
    dayname_TimeStamps    GroupCount    mean_Profit
    __________________    __________    ___________

        Tuesday           2.0000e+00    2.3085e+03 
        Wednesday         2.0000e+00    1.0470e+03 
        Thursday          1.0000e+00    3.0710e+03 
        Friday            2.0000e+00    2.7430e+03 
        Saturday          3.0000e+00    2.7430e+03 

Создайте вектор дат и вектор соответствующих значений прибыли.

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]';

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

format shorte
[meanDailyProfit,dayOfWeek,dailyCounts] = groupsummary(profit,timeStamps,'dayname','mean')
meanDailyProfit = 5×1

   2.3085e+03
   1.0470e+03
   3.0710e+03
   2.7430e+03
   2.7430e+03

dayOfWeek = 5x1 categorical array
     Tuesday 
     Wednesday 
     Thursday 
     Friday 
     Saturday 

dailyCounts = 5×1

     2
     2
     1
     2
     3

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

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

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

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

[B,BG,BC] = groupsummary(Weight,{Gender,Smoker},'mean','IncludeEmptyGroups',true);
B
B = 4×1

   148
   NaN
   NaN
   142

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

BG{2}
ans = 4x1 logical array

   0
   1
   0
   1

BC
BC = 4×1

     2
     0
     0
     3

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

свернуть все

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

Входной массив, заданный как вектор или матрица.

Группирующие переменные или векторы, заданные как скаляр, вектор, матрица, массив ячеек или указатель на функцию.

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

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

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

  • Вектор индексов табличной переменной

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

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

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

Пример: 'Age'

Пример: {'Height','Weight'}

Метод вычисления, заданный как одно из следующего:

  • сумма сумма

  • среднее значение среднее значение

  • медиана медиана

  • режим режим

  • var дисперсия

  • станд стандартное отклонение

  • min минимум

  • Max максимум

  • Область значений максимум минус минимум

  • 'nummissing' — количество недостающих элементов

  • nnz количество ненулевых и non-NaN элементов

  • все все вычисления ранее перечислены

Можно также задать указатель на функцию, который возвращает один элемент на группу. Чтобы задать множественные вычисления за один раз, перечислите опции в массиве ячеек, такие как {'mean','median'}.

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

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

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

  • Вектор индексов табличной переменной

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

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

Когда datavars не задан, groupsummary применяет вычисления к каждой переменной негруппировки.

Пример: 'Profit'

Пример: {'Income','Expenses'}

Пример: @isnumeric

Схема 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

Недостающий индикатор групп, заданный как true или false. Когда значением параметров является true, группы отображений groupsummary, составленные из отсутствующих значений, такие как NaN. Когда значением параметров является false, groupsummary не отображает недостающие группы.

Типы данных: логический

Пустой индикатор групп, заданный как true или false. Когда значением параметров является false, groupsummary не делает дисплейных групп с нулевыми элементами. Когда значением параметров является true, groupsummary отображает пустые группы.

Типы данных: логический

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

свернуть все

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

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

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

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

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

Советы

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

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

Смотрите также

| | | | |

Введенный в R2018a

Для просмотра документации необходимо авторизоваться на сайте