Question

Mon data.df courant de jeu de données est d'environ 420 étudiants qui ont pris une enquête en 8 questions dans l'une des 3 instructeurs. escore est ma variable de résultat d'intérêt.


    'data.frame':   426 obs. of  10 variables:
     $ ques01: int  1 1 1 1 1 1 0 0 0 1 ...
     $ ques02: int  0 0 1 1 1 1 1 1 1 1 ...
     $ ques03: int  0 0 1 1 0 0 1 1 0 1 ...
     $ ques04: int  1 0 1 1 1 1 1 1 1 1 ...
     $ ques05: int  0 0 0 0 1 0 0 0 0 0 ...
     $ ques06: int  1 0 1 1 0 1 1 1 1 1 ...
     $ ques07: int  0 0 1 1 0 1 1 0 0 1 ...
     $ ques08: int  0 0 1 1 1 0 1 1 0 1 ...
     $ inst  : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
     $ escore: int  3 1 5 5 3 3 4 4 2 5 ...
     

Je me demande comment je peux générer histogrammes escore qui sont séparés conditionnellement en fonction de la valeur de inst pour une observation donnée. Dans ma tête, le pseudo-code pourrait ressembler à ceci:


    par(mfrow=c(1,3)) 
    hist(escore, data.df$inst = 1)
    hist(escore, data.df$inst = 2)
    hist(escore, data.df$inst = 3)

mais bien sûr, cela ne fonctionnera pas: - (

Idéalement, mes histogrammes se présente comme suit:

3 histogrammes distincts de ~ 140 observations chacun, regroupés en fonction de leur "inst" http://terpconnect.umd.edu/~briandk/escoreHistogramsbyInstructor-1.png valeur

Comme d'habitude, je sens il doit y avoir un moyen facile de le faire. Quelle que soit « conditionnel / groupement » sens que je peux extraire ces graphiques de mes données, je suppose qu'il est got pour être généralisables pour toutes sortes de parcelles que vous voudriez faire en fonction de certaines conditions.

En outre, je suis vraiment désolé si cette question a été répondu avant. Ma principale difficulté est de trouver comment demander d'une manière qui fait sens.

Merci d'avance pour votre aide!

Était-ce utile?

La solution

Utiliser le paquet de réseau:

library(lattice)
histogram( ~ escore | inst, data=X)

si X est votre objet data.frame.

Autres conseils

Vous pouvez aussi le faire en ggplot2:

data.df <- data.frame(inst = factor(sample(3, 426, replace=TRUE)), 
                      escore = sample(5, 426, replace=TRUE))
qplot(escore, fill=inst, data=data.df) + facet_wrap(~inst, ncol=3)

texte alt http://www.cs.princeton.edu/~jcone/hists.png

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top