Функции подсчета
Подсчет в целочисленном диапазоне
#
StatsBase.counts
— Function
counts(x, [wv::AbstractWeights])
counts(x, levels::UnitRange{<:Integer}, [wv::AbstractWeights])
counts(x, k::Integer, [wv::AbstractWeights])
Подсчитывает, сколько раз встречается каждое значение в x
. Если указан аргумент levels
, учитываются только значения, попадающие в этот диапазон (остальные значения игнорируются без выдачи ошибки или предупреждения). Если указан целочисленный аргумент k
, учитываются только значения в диапазоне 1:k
.
Если указан вектор весов wv
, вычисляются весовые доли, а не доли собственно подсчитанных количеств.
Результатом является вектор длиной length(levels)
.
#
StatsBase.proportions
— Function
proportions(x, levels=span(x), [wv::AbstractWeights])
Возвращает доли значений, встречающихся в x
, в диапазоне levels
. Эквивалентно counts(x, levels) / length(x)
.
Если указан вектор весов wv
, вычисляются весовые доли, а не доли собственно подсчитанных количеств.
proportions(x, k::Integer, [wv::AbstractWeights])
Возвращает доли целочисленных значений, встречающихся в x
, в диапазоне 1--k
.
Если указан вектор весов wv
, вычисляются весовые доли, а не доли собственно подсчитанных количеств.
#
StatsBase.addcounts!
— Method
addcounts!(r, x, levels::UnitRange{<:Integer}, [wv::AbstractWeights])
Добавляет количество вхождений каждого значения из levels
в x
в существующий массив r
. Для каждого xi ∈ x
, если xi == levels[j]
, значение r[j]
увеличивается на единицу.
Если указан вектор весов wv
, используется сумма весов, а не собственно подсчитанные количества.
Подсчет произвольных отдельных значений
#
StatsBase.countmap
— Function
countmap(x; alg = :auto)
countmap(x::AbstractVector, wv::AbstractVector{<:Real})
Возвращает словарь, в котором каждое уникальное значение из x
сопоставлено с количеством его вхождений.
Если указан вектор весов wv
, используется сумма весов, а не собственно подсчитанные количества.
Аргумент alg
допускается только при невзвешенном подсчете и может иметь одно из следующих значений:
-
:auto
(по умолчанию): еслиStatsBase.radixsort_safe(eltype(x)) == true
, то используется:radixsort
; в противном случае используется:dict
. -
:radixsort
: еслиradixsort_safe(eltype(x)) == true
, то для сортировки входного вектора используется алгоритм поразрядной сортировки, что обычно ускоряет выполнение. Однако алгоритм поразрядной сортировки создает копию входного вектора и поэтому потребляет больше оперативной памяти. Выберите значение:dict
, если объем доступной оперативной памяти ограничен. -
:dict
: используется метод на основеDict
, который обычно выполняется медленнее, но потребляет меньше оперативной памяти и является безопасным для любого типа данных.
#
StatsBase.proportionmap
— Function
proportionmap(x)
proportionmap(x::AbstractVector, w::AbstractVector{<:Real})
Возвращает словарь, в котором каждое уникальное значение из x
сопоставлено с его долей в x
.
Если указан вектор весов wv
, вычисляются весовые доли, а не доли собственно подсчитанных количеств.
#
StatsBase.addcounts!
— Method
addcounts!(dict, x; alg = :auto)
addcounts!(dict, x, wv)
Добавляет подсчитанные количества в x
в карту подсчета. Новые записи добавляются, если встречаются новые значения.
Если указан вектор весов wv
, используется сумма весов, а не собственно подсчитанные количества.
Аргумент alg
допускается только при невзвешенном подсчете и может иметь одно из следующих значений:
-
:auto
(по умолчанию): еслиStatsBase.radixsort_safe(eltype(x)) == true
, то используется:radixsort
; в противном случае используется:dict
. -
:radixsort
: еслиradixsort_safe(eltype(x)) == true
, то для сортировки входного вектора используется алгоритм поразрядной сортировки, что обычно ускоряет выполнение. Однако алгоритм поразрядной сортировки создает копию входного вектора и поэтому потребляет больше оперативной памяти. Выберите значение:dict
, если объем доступной оперативной памяти ограничен. -
:dict
: используется метод на основеDict
, который обычно выполняется медленнее, но потребляет меньше оперативной памяти и является безопасным для любого типа данных.