2013-08-08 3 views
20

Mam zestaw danych mającą wartość i grupę, npkruskal.test pokazuje "Wszystkie poziomy grup muszą być skończone" błąd. Jaki jest problem?

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

(Oryginalny zestaw danych będzie zbyt duża, aby zobaczyć tutaj).

Kiedy teraz zrobić kruskal.test(data$Val, data$Grp), otrzymuję komunikat o błędzie mówiąc: all group levels must be finite. Kiedy sprawdzam dane za pomocą is.finite(), widzę, że wszystkie wartości są rzeczywiście skończone.

Internet nie dostarcza wielu informacji na temat tego błędu, więc mam nadzieję, że ktoś może rzucić światło na to, co ten błąd oznacza i jaki może być problem.

+0

co się stanie, gdy wpiszesz 'table (data $ Grp)'? –

+0

Patrząc na kod, otrzymasz wiadomość, ponieważ trafia ona w ten wiersz: 'if (! All (is.finite (g)))' –

Odpowiedz

30

Powinien działać po uruchomieniu

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

Potem (jak poprzednio):

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

To dlatego Grp to nie znak czynnikiem i is.finite stosowane do obiektu klasy znak jest zawsze fałszywe (patrz ?is.finite).

+2

To było rzeczywiście to. Wielkie dzięki, nigdy bym nie wpadł na ten pomysł! – Eekhoorn

+1

Ten sam problem, to samo rozwiązanie z 'fligner.test()'. Niezły chwyt @orizon! – Raphvanns

Powiązane problemy