Преобразование группой
G = grouptransform(T,groupvars,method)
G = grouptransform(T,groupvars,groupbins,method)
G = grouptransform(___,datavars)
G = grouptransform(___,Name,Value)
преобразовывает данные в таблицу или расписание с помощью вычисления в G = grouptransform(T,groupvars,method)
method
, группируясь переменными, заданными в groupvars
. Вывод G
является таблицей или расписанием, содержащим преобразованные данные вместо негруппирующихся переменных от T
. Например, G = grouptransform(T,'Gender','norm')
нормализует данные в T
полом с помощью с 2 нормами.
Интервалы
преобразованные данные согласно G = grouptransform(T,groupvars,groupbins,method)
groupbins
, размещая группы в конце выходной таблицы как дополнительная переменная. Например, G = grouptransform(T,'SaleDate','year','rescale')
масштабирует данные в T
к области значений [0,1] и интервалы к году продаж.
Примеры
Заполните недостающие данные группой
Создайте расписание, содержащее состояние прогресса для 3 команд.
timeStamp = days([1;1;1;2;2;2;3;3;3]);
teamNumber = [1;2;3;1;2;3;1;2;3];
percentComplete = [14.2;28.1;11.5;NaN;NaN;19.3;46.1;51.2;30.3];
T = timetable(timeStamp,teamNumber,percentComplete)
T=9×2 timetable
timeStamp teamNumber percentComplete
_________ __________ _______________
1 day 1 14.2
1 day 2 28.1
1 day 3 11.5
2 days 1 NaN
2 days 2 NaN
2 days 3 19.3
3 days 1 46.1
3 days 2 51.2
3 days 3 30.3
Заполните недостающие проценты состояния (
NaN
) для каждой группы, использующей линейную интерполяцию.
G = grouptransform(T,'teamNumber','linearfill','percentComplete')
G=9×2 timetable
timeStamp teamNumber percentComplete
_________ __________ _______________
1 day 1 14.2
1 day 2 28.1
1 day 3 11.5
2 days 1 30.15
2 days 2 39.65
2 days 3 19.3
3 days 1 46.1
3 days 2 51.2
3 days 3 30.3
Чтобы добавить заполненные данные к исходной таблице вместо замены переменной
percentComplete
, используйте параметр 'ReplaceValues'
.
Gappend = grouptransform(T,'teamNumber','linearfill','percentComplete','ReplaceValues',false)
Gappend=9×3 timetable
timeStamp teamNumber percentComplete linearfill_percentComplete
_________ __________ _______________ __________________________
1 day 1 14.2 14.2
1 day 2 28.1 28.1
1 day 3 11.5 11.5
2 days 1 NaN 30.15
2 days 2 NaN 39.65
2 days 3 19.3 19.3
3 days 1 46.1 46.1
3 days 2 51.2 51.2
3 days 3 30.3 30.3
Нормализуйте данные, за день называют
Составьте таблицу дат и соответствующей прибыли.
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]';
T = table(timeStamps,profit)
T=10×2 table
timeStamps profit
___________ ______
04-Mar-2017 2032
02-Mar-2017 3071
15-Mar-2017 1185
10-Mar-2017 2587
14-Mar-2017 1998
31-Mar-2017 2899
25-Mar-2017 3112
29-Mar-2017 909
21-Mar-2017 2619
18-Mar-2017 3085
Группировка за день называет, нормализует прибыль с 2 нормами.
G = grouptransform(T,'timeStamps','dayname','norm')
G=10×3 table
timeStamps profit dayname_timeStamps
___________ _______ __________________
04-Mar-2017 0.42069 Saturday
02-Mar-2017 1 Thursday
15-Mar-2017 0.79344 Wednesday
10-Mar-2017 0.66582 Friday
14-Mar-2017 0.60654 Tuesday
31-Mar-2017 0.74612 Friday
25-Mar-2017 0.64428 Saturday
29-Mar-2017 0.60864 Wednesday
21-Mar-2017 0.79506 Tuesday
18-Mar-2017 0.63869 Saturday
Входные параметры
T
Входные данные
таблица | расписание
Входные данные, заданные как таблица или расписание.
groupvars
— Группировка переменных
скаляр | вектор | матрица | массив ячеек | указатель на функцию
Группируя переменные, заданные как скаляр, вектор, матрица, массив ячеек или указатель на функцию. groupvars
указывает, какие столбцы входной таблицы использовать, чтобы вычислить группы, и может быть одно из следующего:
Вектор символа или скалярная строка, задающая единственное имя табличной переменной
Массив ячеек из символьных векторов или массив строк, где каждый элемент является именем табличной переменной
Вектор индексов табличной переменной
Логический вектор, элементы которого каждый соответствует табличной переменной, где true
включает соответствующую переменную и false
, исключает его
Указатель на функцию, который берет табличную переменную в качестве входного параметра и возвращает логический скаляр
Пример: 'Возраст'
Пример: {'Высота', 'Вес'}
method
— Метод вычисления
'zscore'
| 'norm'
| 'meancenter'
| 'rescale'
| 'meanfill'
| 'linearfill'
| указатель на функцию
Метод вычисления, заданный как одно из следующего:
Метод
Описание 'zscore'
Нормализуйте данные, чтобы иметь среднее значение 0 и стандартное отклонение 1 норма
Нормализуйте данные с 2 нормами 'meancenter'
Нормализуйте данные, чтобы иметь среднее значение 0 перешкала
Повторно масштабируйте область значений к [0,1] 'meanfill'
Заполните отсутствующие значения со средним значением данных группы 'linearfill'
Заполните отсутствующие значения линейной интерполяцией ненедостающих данных группы
Можно также задать указатель на функцию, который возвращает скаляр или вектор - столбец с тем же количеством строк как входные данные. Если функция возвращает скаляр, grouptransform
повторяет скаляр для каждого элемента преобразованного вывода.
datavars
— 'DataVariables'
скаляр | вектор | массив ячеек | указатель на функцию
Переменные данных для табличного входного параметра, заданного как скаляр, вектор, массив ячеек или указатель на функцию. datavars
указывает, какие столбцы входной таблицы применить методы к, и может быть одна из следующих опций:
Вектор символа или скалярная строка, задающая единственное имя табличной переменной
Массив ячеек из символьных векторов или массив строк, где каждый элемент является именем табличной переменной
Вектор индексов табличной переменной
Логический вектор, элементы которого каждый соответствует табличной переменной, где true
включает соответствующую переменную и false
, исключает его
Указатель на функцию, который берет табличную переменную в качестве входного параметра и возвращает логический скаляр
Когда datavars
не задан, grouptransform
применяет вычисления к каждой переменной негруппировки.
Пример: 'Прибыль'
Пример: {'Поступают', 'Расходы'}
Пример: isnumeric
Схема groupbins
— Binning
'none'
(значение по умолчанию) | вектор | скаляр | массив ячеек
Схема Binning, заданная как одна из следующих опций:
'none'
, не указывая ни на какое раскладывание
Список краев интервала, заданных как числовой вектор или вектор datetime
для переменных группировки datetime
Много интервалов, заданных как целочисленный скаляр
Длительность времени, заданная как скаляр типа duration
или calendarDuration
, указывающий на ширины интервала (только для datetime
или переменных группировки duration
)
Временной интервал для datetime
и переменных группировки duration
только, заданный как одни из следующих векторов символов:
Значение Описание Тип данных второй
Каждый интервал составляет 1 секунду.
datetime
и duration
минута
Каждый интервал составляет 1 минуту.
datetime
и duration
час
Каждый интервал составляет 1 час.
datetime
и duration
день
Каждый интервал составляет 1 календарный день. Это значение составляет сдвиги Летнего времени.
datetime
и duration
неделя
Каждый интервал составляет 1 календарную неделю. datetime только
месяц
Каждый интервал составляет 1 календарный месяц. datetime только
четверть
Каждый интервал составляет 1 календарный квартал. datetime только
год
Каждый интервал составляет 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) — соответствующее значение.
Имя
должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
Пример: G = grouptransform (T, groupvars, groupbins, 'zscore', 'IncludedEdge', 'право')
'IncludedEdge'
Включенный край интервала
'left'
(значение по умолчанию) | 'right'
Включенный край интервала, заданный или как 'left'
или как 'right'
, указывая, какой конец интервала интервала является содержащим.
Эта пара "имя-значение" может только быть задана, когда groupbins
задан, и значение применяется ко всем схемам раскладывания всех переменных группировки.
'ReplaceValues'
— Преобразуйте индикатор размещения
true
(значение по умолчанию) | false
Преобразуйте индикатор размещения, заданный как true
или false
. Когда значением параметров является true
, grouptransform
выходные параметры таблица с вычислениями преобразования вместо негруппирующихся переменных от входного параметра. Когда значением параметров является false
, grouptransform
добавляет вычисления в конец входного параметра, сохраняя исходные переменные таблицы или расписания.
Типы данных: логический
Советы
При совершении многих вызовов к
grouptransform
полагайте, что переменные группировки преобразования вводят categorical
или logical
, если это возможно, для улучшенной производительности. Например, если у вас есть группирующаяся переменная типа char
(такой как Gender
с элементами 'Male'
и 'Female'
), можно преобразовать его в категориальное значение с помощью команды categorical(Gender)
.
Смотрите также
дискретизация
| findgroups
| groupsummary
| rowfun
| splitapply
| varfun
Представленный в R2018b
Была ли эта тема полезной?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.