I can’t understand from the docs how can I retrieve a result from a series. Specifically, if I follow the example

```
y = rand(1000)
s = Series(Mean(), Variance())
fit!(s, y)
```

And after I want to apply std() to the resulting Variance(), I can’t find a way to subselect the Variance from the series

I just found a way which seems convoluted, but works

```
x = randn(10^6)
things = Series(Mean(), Variance())
fit!(things,x)
std(things.stats[2])
```

Have you tried `var(things)`

or `std(things)`

?

yes it returns this error:

ERROR: MethodError: no method matching iterate(::Series{Number,Tuple{Mean{Float64,EqualWeight},Variance{Float64,EqualWeight}}})

Indeed.

I think your approach is ok. consider the `dump`

function which can be helpful.

```
using OnlineStats
y = rand(1000)
o = fit!(Variance(), y)
@show var(o)
@show std(o)
@show mean(o)
s = Series(Mean(), Variance())
fit!(s, y)
@show var(s.stats[2])
@show std(s.stats[2])
@show mean(s.stats[2])
value(s.stats[2])
value(s.stats[1])
dump(s)
dump(o)
```

joshday
#6
That’s probably the most correct way to do this. I don’t think adding a getter function e.g. `stats(s)`

would be worth it.

Alternatively, you can give `Series`

a named tuple:

```
julia> s = Series((m=Mean(), v=Variance()));
julia> fit!(s, randn(100));
julia> s.stats.v
Variance: n=100 | value=1.08054
```

1 Like