2013-08-08 19 views
20

Ho una serie di dati che ha un valore e un gruppo, ad esempio,kruskal.test mostra l'errore "Tutti i livelli di gruppo devono essere finiti". Qual è il problema?

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

(Il set di dati originale sarebbe troppo grande per mostrare qui.)

Quando ora faccio kruskal.test(data$Val, data$Grp), ottengo un errore dicendo all group levels must be finite. Quando controllo i dati con is.finite(), vedo che tutti i valori sono davvero finite.

Internet non produrre un sacco di informazioni su questo errore, quindi non ho la speranza che qualcuno possa far luce su ciò che questo significa errore e che cosa il problema potrebbe essere.

+0

ciò che accade quando si digita 'tabella (dati $ Grp)'? –

+0

Guardando il codice, si otterrebbe il messaggio perché colpisce questa linea: 'se (tutto (is.finite (g))!)' –

risposta

30

Dovrebbe funzionare se si esegue

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

Poi (come prima):

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

Questo perché Grp è un non personaggio un fattore e is.finite applicate ad un oggetto di classe del personaggio è sempre falso (vedere ?is.finite).

+2

Questo era in effetti. Grazie mille, non avrei mai avuto questa idea! – Eekhoorn

+1

Stesso problema, stessa soluzione con 'fligner.test()'. Bella cattura @ orizzonte! – Raphvanns

Problemi correlati