2013-08-08 2 views
20

Ich habe einen Datensatz einen Wert und eine Gruppe, zBkruskal.test zeigt den Fehler "Alle Gruppenstufen müssen endlich sein". Was ist das Problem?

Val Grp 
123 "A" 
231 "A" 
132 "A" 
234 "A" 
445 "B" 
345 "B" 
235 "B" 
345 "B" 

(Die ursprüngliche Datenmenge würde zu groß sein, hier zu sein.)

Wenn ich jetzt kruskal.test(data$Val, data$Grp) tun, bekomme ich einen Fehler sagen all group levels must be finite. Wenn ich die Daten mit is.finite() überprüfen, kann ich sehen, dass alle Werte tatsächlich endlich sind.

Das Internet liefert nicht viele Informationen über diesen Fehler, daher hoffe ich, dass jemand herausfinden könnte, was dieser Fehler bedeutet und was das Problem sein könnte.

+0

was passiert, wenn Sie 'table (data $ Grp)' eingeben? –

+0

Mit Blick auf den Code erhalten Sie die Nachricht, weil es diese Zeile trifft: 'if (! All (is.finite (g)))' –

Antwort

30

Es sollte funktionieren, wenn Sie

data$Grp <- as.factor(data$Grp) 

Dann laufen (wie vorher):

kruskal.test(data$Val, data$Grp) 

Dies liegt daran, Grp ein Zeichen auf ein Objekt der Zeichenklasse angewendet kein Faktor und is.finite ist immer falsch (siehe ?is.finite).

+2

Das war es tatsächlich. Vielen Dank, ich hätte diese Idee nie bekommen! – Eekhoorn

+1

Gleiches Problem, gleiche Lösung mit 'fligner.test()'. Schöner Fang @orizon! – Raphvanns

Verwandte Themen