vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
Ergänzender Hinweis für Interessierte 
Autor: Manfred X
Datum: 20.10.10 16:41

Hallo!

Ergänzender Hinweis für Interessierte.

Falls bei Rangbindungen (= mehrfaches Auftreten des gleichen
Rohwerts in der Datenreihe) den numerisch gleichen Werten jeweils
der kleinste der korrespondierenden Räng zugewiesen wird, hat das
den Nachteil, dass die Gesamtsumme der Ränge nicht identisch ist
mit der Rang-Summe, die man erhält bei Datenserien ohne Rangbindung.
Durch Zuweisung des mittleren Rangs kann man das verhindern.
Auch statistische Tests für Ordinalreihen beruhen gewöhnlich auf
solchen Rängen.

Also statt:
1 -- 2 -- 2 -- 2 -- 5 -- 6 -- 7 -- 7 -- 9 -- 9 (Excel, Summe = 50)

manchmal besser:
1 -- 3 -- 3 -- 3 -- 5 -- 6 -- 7.5 7.5 9.5 9.5 (MeanRank, Summe = 55)


    Function vRank2(ByVal dt As DataTable, _
                    ByVal rohwert_spalte As String, _
                    ByVal rangwert_spalte As String) As Boolean
 
        If dt Is Nothing Then Return False
        If dt.Rows.Count < 1 Then Return False
        If Not dt.Columns.Contains(rohwert_spalte) Then Return False
        If Not dt.Columns.Contains(rangwert_spalte) Then Return False
 
        Try
            Dim sortList As List(Of Decimal) = _
            (From row As DataRow In dt.AsEnumerable() _
             Order By row.Field(Of Decimal)(rohwert_spalte) _
             Select row.Field(Of Decimal)(rohwert_spalte)).ToList()
 
            Dim val As Decimal, index_ug, index_og As Integer
            For Each row As DataRow In dt.Rows
                val = row(rohwert_spalte)
                index_ug = sortList.IndexOf(val) + 1
                index_og = sortList.LastIndexOf(val) + 1
                row(rangwert_spalte) = meanrank(index_ug, index_og)
            Next row
            Return True
        Catch
            Return False
        End Try
    End Function
 
 
    Private Function meanrank(ByVal index_ug As Integer, _
                              ByVal index_og As Integer) As Decimal
        'Berechnung des mittleren Rangs in einem Bereich
        Dim mr As Decimal = 0
        For i As Integer = index_ug To index_og
            mr += i
        Next i
        Return mr / (index_og - index_ug + 1)
    End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataTable Expressions Rangliste2.473SvenS19.10.10 07:52
Re: DataTable Expressions Rangliste1.887Manfred X19.10.10 08:28
Re: DataTable Expressions Rangliste1.870SvenS19.10.10 08:36
Re: DataTable Expressions Rangliste1.888Manfred X19.10.10 08:58
Re: DataTable Expressions Rangliste1.826SvenS19.10.10 09:44
Ergänzender Hinweis für Interessierte1.855Manfred X20.10.10 16:41
Re: Ergänzender Hinweis für Interessierte1.858ModeratorDaveS20.10.10 17:46
Re: Ergänzender Hinweis für Interessierte1.885Manfred X20.10.10 18:20
Re: Ergänzender Hinweis für Interessierte1.815ModeratorDaveS20.10.10 18:33
Re: DataTable Expressions Rangliste2.073ModeratorDaveS19.10.10 15:28
Re: DataTable Expressions Rangliste1.857SvenS20.10.10 10:17
Re: DataTable Expressions Rangliste1.844ModeratorDaveS20.10.10 10:52
Re: DataTable Expressions Rangliste1.842SvenS20.10.10 11:27
Re: DataTable Expressions Rangliste1.825Manfred X20.10.10 12:07
Re: DataTable Expressions Rangliste1.842SvenS20.10.10 14:42
Re: DataTable Expressions Rangliste1.948ModeratorDaveS20.10.10 14:54
Re: DataTable Expressions Rangliste1.822SvenS20.10.10 22:50
Re: DataTable Expressions Rangliste1.833ModeratorDaveS21.10.10 08:09
Re: DataTable Expressions Rangliste1.830SvenS21.10.10 08:40
Re: DataTable Expressions Rangliste1.841Manfred X21.10.10 11:42
Re: DataTable Expressions Rangliste1.859ModeratorDaveS21.10.10 15:23
Re: DataTable Expressions Rangliste (Lösung)1.988SvenS21.10.10 15:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel