Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB4,VB5,VB6,VBS
Expertise: Intermediate
Nov 20, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

ArrayStdDev - The standard deviation of a numeric array

' The standard deviation of an array of any type
' if the second argument is True or omitted,
' it evaluates the standard deviation of a sample,
' if it is False it evaluates the standard deviation of a population
' if the third argument is True or omitted, Empty values aren't accounted for

Function ArrayStdDev(arr As Variant, Optional SampleStdDev As Boolean = True, _
    Optional IgnoreEmpty As Boolean = True) As Double
    Dim sum As Double
    Dim sumSquare As Double
    Dim value As Double
    Dim count As Long
    Dim index As Long

    ' evaluate sum of values
    ' if arr isn't an array, the following statement raises an error
    For index = LBound(arr) To UBound(arr)
        value = arr(index)
        ' skip over non-numeric values
        If IsNumeric(value) Then
            ' skip over empty values, if requested
            If Not (IgnoreEmpty And IsEmpty(value)) Then
                ' add to the running total
                count = count + 1
                sum = sum + value
                sumSquare = sumSquare + value * value
            End If
         End If

    ' evaluate the result
    ' use (Count-1) if evaluating the standard deviation of a sample
    If SampleStdDev Then
        ArrayStdDev = Sqr((sumSquare - (sum * sum / count)) / (count - 1))
        ArrayStdDev = Sqr((sumSquare - (sum * sum / count)) / count)
    End If

End Function
Anand S. Desai
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date