статистика::
Статистика дублирующихся строк в выборке
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
stats::tabulate(s
) stats::tabulate(s
,c1, c2, …
, <f
>) stats::tabulate(s
,c1 .. c2, c3 .. c4, …
, <f
>) stats::tabulate(s
,[c1, f1], [c2, f2], …
) stats::tabulate(s
,[c1, c2, …, f1], [c3, c4, …, f2], …
)
stats::tabulate(s)
устраняет дублирующиеся строки в демонстрационном s
и добавляет столбец, содержащий кратность.
stats::tabulate( s, c1, c2, …, f )
комбинирует все строки, которые идентичны за исключением записей в заданных столбцах c 1, c 2 и т.д. Функциональный f
применяется к этим столбцам, его результат заменяет значения в этих столбцах.
stats::tabulate( s, [c1, f1], [c2, f2], … )
комбинирует все строки, которые идентичны за исключением записей в столбцах c 1, c 2 и т.д. Функции f 1, f 2 и т.д. применяется к этим столбцам, результаты, заменяют значения в этих столбцах.
stats::tabulate
рассматривает строки как копии, если у них есть идентичные записи в столбцах, которые не заданы.
С stats::tabulate( s, c1, c2, …, f )
функциональный f
применяется к записям дублирующихся строк в заданных столбцах. Копии устраняются и заменяются одним экземпляром строки, результат f
вставляется в соответствующие столбцы.
Функциональный f
должен принять столько же параметров, сколько существуют копии. Типовые приложения включают функции, такие как stats::mean
, которые принимают произвольно много аргументов.
Например, с stats::mean
дублирующиеся строки заменяются одной строкой, в которой записи столбцов c 1, c 2 и т.д. заменяется средними значениями соответствующих записей копий.
Если никакой функциональный f
не задан, то функциональный _plus
по умолчанию используется.
Если индексы столбца заданы несколько раз, дополнительные столбцы с результатом заданной функции вставляются в выборку.
Последовательные столбцы могут быть заданы областями значений. Например, вызов stats::tabulate(s, c[1]..c[2], dots, f)
является обозначением стенографии для stats::tabulate(s, c1, c1 + 1, …, c2, …, f)
.
С парами stats::tabulate(s, [c1, f1], [c2, f2], …)
столбцов и соответствующих процедур заданы. Снова, строки рассматриваются как копии, если у них есть идентичные записи в столбцах, которые не заданы. Копии устраняются и заменяются одним экземпляром строки, результат f 1 вставляется в столбец c 1, результат f 2 вставляется в столбец c 2 и т.д.
Если индексы столбца заданы несколько раз, то дополнительные столбцы с результатом заданных функций вставляются в выборку.
С stats::tabulate(s, [c1, c2, …, f1], …)
возможно применить функции, которые действуют на несколько столбцов. Процедура f 1 должна принять последовательность списков (каждое представление столбца). Заданные столбцы заменяются отдельным столбцом, содержащим результат f 1. Если индексы столбца заданы несколько раз, то дополнительные столбцы с результатом заданной функции (функций) вставляются в выборку. Смотрите Пример 2 и Пример 3.
Мы создаем выборку:
s := stats::sample([[a, A, 1], [a, A, 1], [a, A, 2], [b, B, 5], [b, B, 10]])
a A 1 a A 1 a A 2 b B 5 b B 10
Дублирующиеся строки выборки считаются. Существует четыре уникальных строки, одно появление дважды:
stats::tabulate(s)
a A 1 2 a A 2 1 b B 5 1 b B 10 1
В следующем вызове строки рассматриваются как копии, если записи в первых двух столбцах совпадают. Мы вычисляем среднее значение третьей записи копий:
stats::tabulate(s, 3, stats::mean)
a A 4/3 b B 15/2
Мы вычисляем и среднее значение и стандартное отклонение данных в третьем столбце для подвыборок, маркировал 'a A' и 'b B' первыми двумя столбцами:
stats::tabulate(s, [3, stats::mean], [3, stats::stdev])
a A 4/3 3^(1/2)/3 b B 15/2 (5*2^(1/2))/2
delete s:
Мы создаем демонстрационное, содержащее столбцы для “пола”, “возраста” и “размера”:
s := stats::sample([["f", 25, 166], ["m", 30, 180], ["f", 54, 160], ["m", 40, 170], ["f", 34, 170], ["m", 20, 172]])
"f" 25 166 "m" 30 180 "f" 54 160 "m" 40 170 "f" 34 170 "m" 20 172
Мы используем stats::mean
на втором и третьем столбце, чтобы вычислить средний “возраст” и “размер” каждого пола:
stats::tabulate(s, 2..3, float@stats::mean)
"f" 37.66666667 165.3333333 "m" 30.0 174.0
Со следующим вызовом и среднее значение и стандартное отклонение “возраста” и “размера” для каждого пола вставляются в выборку.
stats::tabulate(s, [2, float@stats::mean], [2, float@stats::stdev], [3, float@stats::mean], [3, float@stats::stdev])
"f" 37.66666667 14.84362939 165.3333333 5.033222957 "m" 30.0 10.0 174.0 5.291502622
Мы вычисляем Bravais-коэффициент-корреляции-пирсона между “возрастом” и “размером” для каждого пола:
stats::tabulate(s, [2, 3, float@stats::correlation])
"f" -0.7540135991 "m" -0.1889822365
delete s:
Мы создаем выборку:
s := stats::sample([[a, x1, 1, 2], [b, x2, 2, 4], [b, x1, 2, 4], [e, x2, 3, 5.5]])
a x1 1 2 b x2 2 4 b x1 2 4 e x2 3 5.5
Мы расцениваем строки с той же записью во втором столбце как “того же вида”. Мы сводим в таблицу демонстрационные использующие различные функции на остальных столбцах:
stats::tabulate(s, [1, _plus], [3, _mult], [4, stats::mean])
a + b x1 2 3 b + e x2 6 4.75
Можно применить настроенные процедуры. В следующем мы задаем процедуру plusmult
, который подводит итог элементов двух списков (представляющий столбцы) и затем умножает суммы.
plusmult := proc(x, y) begin _plus(op(x))*_plus(op(y)) end_proc:
Эта процедура затем используется, чтобы объединить первое и третий столбец. Одновременно, среднее значение и стандартное отклонение четвертого столбца вставляются в выборку.
stats::tabulate(s, [1, 3, plusmult], [4, stats::mean], [4, stats::stdev])
3*a + 3*b x1 3 2^(1/2) 5*b + 5*e x2 4.75 1.060660172
delete plusmult, s:
|
Выборка доменного типа |
|
Целые числа, представляющие индексы столбца демонстрационного |
|
Процедуры |
Выборка доменного типа stats::sample
.