public final Observable<Long> averageLong(Func1<? super T, Long> valueExtractor) {
        return o.lift(new OperatorAverageLong<T>(valueExtractor));
    }
public final Observable < Long > averageLong ( Func1 < ? super T , Long > valueExtractor ) { return o . lift ( new OperatorAverageLong < T > ( valueExtractor ) ) ; }
Returns an Observable that transforms items emitted by the source Observable into Longs by using a
function you provide and then emits the Long average of the complete sequence of transformed values.
<p>
<img width="640" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/average.f.png" alt="">

@param valueExtractor
the function to transform an item emitted by the source Observable into a Long
@return an Observable that emits a single item: the Long average of the complete sequence of items
emitted by the source Observable when transformed into Longs by the specified function
@see <a href="https://github.com/ReactiveX/RxJava/wiki/Mathematical-and-Aggregate-Operators#wiki-averageinteger-averagelong-averagefloat-and-averagedouble">RxJava Wiki: averageLong()</a>
@see <a href="http://msdn.microsoft.com/en-us/library/system.reactive.linq.observable.average.aspx">MSDN: Observable.Average</a>