2009-11-29 8 views
1

Je ne pense pas avoir besoin d'expliquer exactement ce que fait le code. Le point est que tout en effectuant la chisq.test en dehors de la boucle, je reçois un résultat comme celui-ci (prévu):chisq.test n'imprime pas les résultats en boucle

 Chi-squared test for given probabilities 

data: observed 
X-squared = 185912, df = 5, p-value < 2.2e-16 

mais lorsque je tente de faire le test dans une boucle, le résultat attendu ne semble pas

total <- dim(crs$dataset_init)[1] 
expected.fr <- cl.popul/total 

for (i in 1:dim(cl.vs.Onerall)[1]) { 
     if (cl.vs.Onerall[i,1] > 0) { 
      observed <- cl.vs.Onerall[i,2:(clust_no + 1)] 

      print(rownames(cl.vs.Onerall)[i]) 
      chisq.test(observed, p=expected.fr) 
      print("------------------------------") 
    } 
} 

Toutes les idées seraient grandement appréciées!

+0

Avez-vous une sortie du tout - les noms de scène et les tirets s'affichent-ils? – schnaader

+0

Remarquez-vous quelque chose qui manque au milieu de vos trois lignes de sortie ?? – hadley

+0

Oui, les signes et les tirets s'affichent –

Répondre

1

Comme suggéré dans les commentaires, utilisez simplement print pour vous assurer que les résultats du test sont imprimés sur la console. En plus de la ligne avec le test de chisquare, le reste de votre code devrait rester le même.

total <- dim(crs$dataset_init)[1] 
expected.fr <- cl.popul/total 

for (i in 1:dim(cl.vs.Onerall)[1]) { 
     if (cl.vs.Onerall[i,1] > 0) { 
      observed <- cl.vs.Onerall[i,2:(clust_no + 1)] 

      print(rownames(cl.vs.Onerall)[i]) 
      print(chisq.test(observed, p=expected.fr)) # edited line 
      print("------------------------------") 
    } 
} 
Questions connexes