2010-10-14 18 views
2

J'ai une autre question de débutant;Fusion de deux variables pour créer une table de fréquence

laisse dire que j'ai un ensemble de nombres

graph_val <- c(4,2,3,4,1,1,9) 

et je dois créer une table de fréquence d'entre eux contre cette échelle

  1   2   3   4   5   9 
"Very Poor"  "Poor" "Average"  "Good" "Very Good" "Don't Know" 

Essentiellement ce que je veux savoir est comment puis-je une table dans ce format:

"Very Poor"  "Poor" "Average"  "Good" "Very Good" "Don't Know" 
      2   1   1   1   0   1 

ou à tout le moins:

  1   2   3   4   5   9 
      2   1   1   1   0   1 

Et je peux ajouter les étiquettes plus tard à l'aide names.arg avec barplot 2.

Je suis sur ce point pour la plupart du jour, après sa course claire pour le reste de mon travail d'automatisation . Je pensais que j'étais sur la bonne voie avec tabulate mais je ne pouvais pas vraiment y arriver.

Répondre

2

D'abord, vous devez prendre en compte vos données. Pensez à un facteur exactement comme vous le feriez pour une variable catégorielle. Levels lui dit à quoi s'attendre, les labels lui donnent un joli nom.

graph_val <- factor(graph_val, levels=c(1,2,3,4,5,9), labels=strsplit(' 
Very Poor 
Poor 
Average 
Good 
Very Good 
Don\'t Know 
', '\n')[[1]][-1]) 
## Take note of the escape character in Don\'t Know 

summary(graph_val) 

Si vous avez besoin pourcentages, vous pouvez faire quelque chose comme ceci:

summary(graph_val)/length(graph_val)\ 

Ou ceci:

round(summary(graph_val)/length(graph_val),2) 
+0

Merci encore pour votre aide, je ne sais pas vraiment comment j'aurais pu aller aussi loin avec ce projet si ce n'était pas pour des gens comme vous aider: P –