Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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
    Next

    ' 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))
    Else
        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.

 

 

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