under construction (see tests)
You may pad the result with the value of your choice
padding is a keyword argument
- if you assign e.g. padding = missing, the result will be padfirst
- you may pad using any defined value and all types except Nothing
- example pads(missing, 0, nothing, NaN, 'โ ', AbstractString)
using RollingFunctions
๐ท๐๐ก๐ = [1, 2, 3, 4, 5]
๐น๐ข๐๐ = sum
๐๐๐๐ = 3
result = rolling(๐น๐ข๐๐, ๐ท๐๐ก๐, ๐๐๐๐; padding = missing);
#=
julia> result
5-element Vector{Union{Missing, Int64}}:
missing
missing
6
9
12
=#
result = rolling(๐น๐ข๐๐, ๐ท๐๐ก๐, ๐๐๐๐; padding = zero(eltype(๐ท๐๐ก๐));
#=
julia> result
5-element Vector{Int64}:
0
0
6
9
12
=#
Give me the real values first, pad to the end.
result = rolling(๐น๐ข๐๐, ๐ท๐๐ก๐, ๐๐๐๐; padding = missing, atend=true);
#=
julia> result
5-element Vector{Union{Missing,Int64}}:
6
9
12
missing
missing
=#
technical aside: this is not the same as reverse(rolling(๐น๐ข๐๐,๐ท๐๐ก๐, ๐๐๐๐; padding = zero(eltype(๐ท๐๐ก๐)).
padding matrices
using RollingFunctions
๐ท๐๐ก๐โ = [1, 2, 3, 4, 5] ๐ท๐๐ก๐โ = [5, 4, 3, 2, 1] ๐ท๐๐ก๐โ = [1, 2, 3, 2, 1]
๐ = hcat(๐ท๐๐ก๐โ,๐ท๐๐ก๐โ,๐ท๐๐ก๐โ) #= 5ร3 Matrix{Int64}: 1 5 1 2 4 2 3 3 3 4 2 2 5 1 1 =#
๐น๐ข๐๐ = sum ๐๐๐๐ = 3
result = rolling(๐น๐ข๐๐, ๐, ๐๐๐๐; padding=missing) #= 5ร3 Matrix{Union{Missing,Int64}}: missing missing missing missing missing missing 6 12 6 9 9 7 12 6 6 =#
Give me the real values first, pad to the end.
result = rolling(๐น๐ข๐๐, ๐, ๐๐๐๐; padding = missing, atend=true) #= 5ร3 Matrix{Union{Missing,Int64}}: 6 12 6 9 9 7 12 6 6 missing missing missing missing missing missing =#
multicolumn padding
You may pad the result with the value of your choice
padding is a keyword argument
- if you assign e.g. padding = missing, the result will be padfirst
- you may pad using any defined value and all types except Nothing
- example pads(missing, 0, nothing, NaN, 'โ ', AbstractString)
using RollingFunctions
๐ท๐๐ก๐โ = [1, 2, 3, 4, 5]
๐ท๐๐ก๐โ = [5, 4, 3, 2, 1]
๐น๐ข๐๐ = cov
๐๐๐๐ = 3
result = rolling(๐น๐ข๐๐, ๐ท๐๐ก๐โ, ๐ท๐๐ก๐โ, ๐๐๐๐; padding = zero(eltype(๐)))
#=
julia> result
5 element Vector {Float64}:
0.0
0.0
-1.0
-1.0
-1.0
=#
Give me the real values first, pad to the end.
result = rolling(๐น๐ข๐๐, ๐ท๐๐ก๐โ, ๐ท๐๐ก๐โ, ๐๐๐๐; padding = missing, atend=true)
#=
5 element Vector {Float64}:
-1.0
-1.0
-1.0
missing
missing
=#