Документация Engee

Прочие функции

rle(v) -> (vals, lens)

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

Примеры

julia> using StatsBase

julia> rle([1,1,1,2,2,3,3,3,3,2,2,2])
([1, 2, 3, 2], [3, 2, 4, 3])
inverse_rle(vals, lens)

Воссоздает вектор из его кодированной по длинам серий формы (см. описание rle). vals является вектором значений, а lens — вектором соответствующих длин серий.

levelsmap(a)

Создает словарь, в котором каждое из n уникальных значений в a сопоставлено с числом от 1 до n.

indexmap(a)

Создает словарь, в котором каждое уникальное значение из a сопоставлено с индексом его первого вхождения в a.

indicatormat(x, k::Integer; sparse=false)

Создает логическую матрицу I размера (k, length(x)) такую, что I[x[i], i] = true и все элементы имеют значение false. Если аргумент sparse имеет значение true, результатом будет разреженная матрица; в противном случае она будет плотной (по умолчанию).

Примеры

julia> using StatsBase

julia> indicatormat([1 2 2], 2)
2×3 Matrix{Bool}:
 1  0  0
 0  1  1
indicatormat(x, c=sort(unique(x)); sparse=false)

Создает логическую матрицу I размера (length(c), length(x)). Допустим, ci — это индекс x[i] в c. Тогда I[ci, i] = true, а все остальные элементы имеют значение false.

StatsBase.midpoints(v)

Вычисляет срединные точки (попарное среднее последовательных элементов).

pairwise(f, x[, y];
         symmetric::Bool=false, skipmissing::Symbol=:none)

Возвращает матрицу, содержащую результат применения функции f ко всем возможным парам элементов в итераторах x и y. Строки соответствуют элементам в x, а столбцы — элементам в y. Если аргумент y не указан, возвращается квадратная матрица, являющаяся пересечением итератора x с самим собой.

В особом случае, если функцией f является cor, расположенные по диагонали ячейки, для которых элементы в x и y являются идентичными (===), задаются равными единице даже при наличии элементов со значением missing, NaN или Inf.

Именованные аргументы

  • symmetric::Bool=false: при значении true функция f вызывается только для нижнего треугольника матрицы, и эти значения копируются для заполнения верхнего треугольника. Допускается только в том случае, если аргумент y не указан. Если функцией f является cor или cov, по умолчанию имеет значение true.

  • skipmissing::Symbol=:none: при значении :none (по умолчанию) значения missing во входных данных передаются в f без изменения. Используйте :pairwise, чтобы пропускать элементы со значением missing в каждом из двух векторов, передаваемых в f, для данной пары векторов в x и y. Используйте :listwise, чтобы пропускать элементы со значением missing в любом из векторов в x или y; обратите внимание, что это может привести к пропуску значительной части элементов. Допускается только в том случае, если элементы в x и y являются векторами.

Примеры

julia> using StatsBase, Statistics

julia> x = [1 3 7
            2 5 6
            3 8 4
            4 6 2];

julia> pairwise(cor, eachcol(x))
3×3 Matrix{Float64}:
  1.0        0.744208  -0.989778
  0.744208   1.0       -0.68605
 -0.989778  -0.68605    1.0

julia> y = [1 3 missing
            2 5 6
            3 missing 2
            4 6 2];

julia> pairwise(cor, eachcol(y), skipmissing=:pairwise)
3×3 Matrix{Float64}:
  1.0        0.928571  -0.866025
  0.928571   1.0       -1.0
 -0.866025  -1.0        1.0
pairwise!(f, dest::AbstractMatrix, x[, y];
          symmetric::Bool=false, skipmissing::Symbol=:none)

Сохраняет в матрице dest результат применения функции f ко всем возможным парам элементов в итераторах x и y и возвращает эту матрицу. Строки соответствуют элементам в x, а столбцы — элементам в y, поэтому матрица dest должна иметь размер length(x) × length(y). Если аргумент y не указан, выполняется пересечение итератора x с самим собой.

В особом случае, если функцией f является cor, расположенные по диагонали ячейки, для которых элементы в x и y являются идентичными (===), задаются равными единице даже при наличии элементов со значением missing, NaN или Inf.

Именованные аргументы

  • symmetric::Bool=false: при значении true функция f вызывается только для нижнего треугольника матрицы, и эти значения копируются для заполнения верхнего треугольника. Допускается только в том случае, если аргумент y не указан. Если функцией f является cor или cov, по умолчанию имеет значение true.

  • skipmissing::Symbol=:none: при значении :none (по умолчанию) значения missing во входных данных передаются в f без изменения. Используйте :pairwise, чтобы пропускать элементы со значением missing в каждом из двух векторов, передаваемых в f, для данной пары векторов в x и y. Используйте :listwise, чтобы пропускать элементы со значением missing в любом из векторов в x или y; обратите внимание, что это может привести к пропуску значительной части элементов. Допускается только в том случае, если элементы в x и y являются векторами.

Примеры

julia> using StatsBase, Statistics

julia> dest = zeros(3, 3);

julia> x = [1 3 7
            2 5 6
            3 8 4
            4 6 2];

julia> pairwise!(cor, dest, eachcol(x));

julia> dest
3×3 Matrix{Float64}:
  1.0        0.744208  -0.989778
  0.744208   1.0       -0.68605
 -0.989778  -0.68605    1.0

julia> y = [1 3 missing
            2 5 6
            3 missing 2
            4 6 2];

julia> pairwise!(cor, dest, eachcol(y), skipmissing=:pairwise);

julia> dest
3×3 Matrix{Float64}:
  1.0        0.928571  -0.866025
  0.928571   1.0       -1.0
 -0.866025  -1.0        1.0