In version .0.3.7, I encountered a strange error in which subsetting the chain breaks for certain sizes. Here is an example in which subsetting works:
Although this works and the printed dimensions are correct, note that the size of subChain is not correct when queried by size. Now, here is an example that causes an error:
Object of type Chains, with data of type 1000×7×1 Array{Union{Missing, Float64},3}
Log evidence = 0.0
Iterations = 2001:3000
Thinning interval = 1
Chains = 1
Samples per chain = 1000
internals = elapsed, epsilon, eval_num, lf_eps, lf_num, lp
parameters = μ
Error showing value of type Chains{Union{Missing, Float64},Float64,NamedTuple{(:internals, :parameters),Tuple{Array{String,1},Array{String,1}}},NamedTuple{(:samples, :hashedsummary),Tuple{Array{Turing.Utilities.Sample,1},Base.RefValue{Tuple{UInt64,ChainDataFrame}}}}}:
ERROR: BoundsError: attempt to access 1000×7×1 Array{Union{Missing, Float64},3} at index [1:1500, [7], [1]]
Stacktrace:
[1] throw_boundserror(::Array{Union{Missing, Float64},3}, ::Tuple{UnitRange{Int64},Array{Int64,1},Array{Int64,1}}) at ./abstractarray.jl:484
[2] checkbounds at ./abstractarray.jl:449 [inlined]
[3] _getindex at ./multidimensional.jl:641 [inlined]
[4] getindex at ./abstractarray.jl:927 [inlined]
[5] getindex at /home/dfish/.julia/packages/AxisArrays/G6pZY/src/indexing.jl:100 [inlined]
[6] getindex(::AxisArrays.AxisArray{Union{Missing, Float64},3,Array{Union{Missing, Float64},3},Tuple{AxisArrays.Axis{:iter,StepRange{Int64,Int64}},AxisArrays.Axis{:var,Array{String,1}},AxisArrays.Axis{:chain,Array{Int64,1}}}}, ::UnitRange{Int64}, ::Array{String,1}, ::Array{Int64,1}) at /home/dfish/.julia/packages/AxisArrays/G6pZY/src/indexing.jl:117
[7] getindex(::Chains{Union{Missing, Float64},Float64,NamedTuple{(:internals, :parameters),Tuple{Array{String,1},Array{String,1}}},NamedTuple{(:samples, :hashedsummary),Tuple{Array{Turing.Utilities.Sample,1},Base.RefValue{Tuple{UInt64,ChainDataFrame}}}}}, ::UnitRange{Int64}, ::String, ::Int64) at /home/dfish/.julia/packages/MCMCChains/g18Mi/src/chains.jl:191
[8] #ess#193(::Bool, ::Array{Symbol,1}, ::Int64, ::Function, ::Chains{Union{Missing, Float64},Float64,NamedTuple{(:internals, :parameters),Tuple{Array{String,1},Array{String,1}}},NamedTuple{(:samples, :hashedsummary),Tuple{Array{Turing.Utilities.Sample,1},Base.RefValue{Tuple{UInt64,ChainDataFrame}}}}}) at /home/dfish/.julia/packages/MCMCChains/g18Mi/src/stats.jl:205
[9] #ess at ./none:0 [inlined]
[10] #summarystats#200(::Bool, ::Bool, ::Array{Symbol,1}, ::Symbol, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Chains{Union{Missing, Float64},Float64,NamedTuple{(:internals, :parameters),Tuple{Array{String,1},Array{String,1}}},NamedTuple{(:samples, :hashedsummary),Tuple{Array{Turing.Utilities.Sample,1},Base.RefValue{Tuple{UInt64,ChainDataFrame}}}}}) at /home/dfish/.julia/packages/MCMCChains/g18Mi/src/stats.jl:305
[11] summarystats at /home/dfish/.julia/packages/MCMCChains/g18Mi/src/stats.jl:295 [inlined]
[12] show(::IOContext{REPL.Terminals.TTYTerminal}, ::Chains{Union{Missing, Float64},Float64,NamedTuple{(:internals, :parameters),Tuple{Array{String,1},Array{String,1}}},NamedTuple{(:samples, :hashedsummary),Tuple{Array{Turing.Utilities.Sample,1},Base.RefValue{Tuple{UInt64,ChainDataFrame}}}}}) at /home/dfish/.julia/packages/MCMCChains/g18Mi/src/chains.jl:317
[13] show(::IOContext{REPL.Terminals.TTYTerminal}, ::MIME{Symbol("text/plain")}, ::Chains{Union{Missing, Float64},Float64,NamedTuple{(:internals, :parameters),Tuple{Array{String,1},Array{String,1}}},NamedTuple{(:samples, :hashedsummary),Tuple{Array{Turing.Utilities.Sample,1},Base.RefValue{Tuple{UInt64,ChainDataFrame}}}}}) at ./sysimg.jl:194
[14] display(::REPL.REPLDisplay, ::MIME{Symbol("text/plain")}, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:131
[15] display(::REPL.REPLDisplay, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:135
[16] display(::Any) at ./multimedia.jl:287
[17] #15 at /home/dfish/.julia/packages/Media/ItEPc/src/compat.jl:28 [inlined]
[18] hookless(::getfield(Media, Symbol("##15#16")){Chains{Union{Missing, Float64},Float64,NamedTuple{(:internals, :parameters),Tuple{Array{String,1},Array{String,1}}},NamedTuple{(:samples, :hashedsummary),Tuple{Array{Turing.Utilities.Sample,1},Base.RefValue{Tuple{UInt64,ChainDataFrame}}}}}}) at /home/dfish/.julia/packages/Media/ItEPc/src/compat.jl:14
[19] render at /home/dfish/.julia/packages/Media/ItEPc/src/compat.jl:27 [inlined]
[20] render(::Chains{Union{Missing, Float64},Float64,NamedTuple{(:internals, :parameters),Tuple{Array{String,1},Array{String,1}}},NamedTuple{(:samples, :hashedsummary),Tuple{Array{Turing.Utilities.Sample,1},Base.RefValue{Tuple{UInt64,ChainDataFrame}}}}}) at /home/dfish/.julia/packages/Media/ItEPc/src/system.jl:160
[21] display(::Media.DisplayHook, ::Chains{Union{Missing, Float64},Float64,NamedTuple{(:internals, :parameters),Tuple{Array{String,1},Array{String,1}}},NamedTuple{(:samples, :hashedsummary),Tuple{Array{Turing.Utilities.Sample,1},Base.RefValue{Tuple{UInt64,ChainDataFrame}}}}}) at /home/dfish/.julia/packages/Media/ItEPc/src/compat.jl:9
[22] display(::Any) at ./multimedia.jl:287
[23] #invokelatest#1 at ./essentials.jl:742 [inlined]
[24] invokelatest at ./essentials.jl:741 [inlined]
[25] print_response(::IO, ::Any, ::Any, ::Bool, ::Bool, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:155
[26] print_response(::REPL.AbstractREPL, ::Any, ::Any, ::Bool, ::Bool) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:140
[27] (::getfield(REPL, Symbol("#do_respond#38")){Bool,getfield(REPL, Symbol("##48#57")){REPL.LineEditREPL,REPL.REPLHistoryProvider},REPL.LineEditREPL,REPL.LineEdit.Prompt})(::Any, ::Any, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:714
[28] #invokelatest#1 at ./essentials.jl:742 [inlined]
[29] invokelatest at ./essentials.jl:741 [inlined]
[30] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/LineEdit.jl:2273
[31] run_frontend(::REPL.LineEditREPL, ::REPL.REPLBackendRef) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:1035
[32] run_repl(::REPL.AbstractREPL, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:192
[33] (::getfield(Base, Symbol("##734#736")){Bool,Bool,Bool,Bool})(::Module) at ./client.jl:362
[34] #invokelatest#1 at ./essentials.jl:742 [inlined]
[35] invokelatest at ./essentials.jl:741 [inlined]
[36] run_main_repl(::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at ./client.jl:346
[37] exec_options(::Base.JLOptions) at ./client.jl:284
[38] _start() at ./client.jl:436