Domanda

Ho un'altra domanda newbie;

Diciamo che ho una serie di numeri

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

e ho bisogno di creare una tabella di frequenza di loro contro questa scala

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

In sostanza quello che voglio sapere è come faccio a ottenere un tavolo in questo formato:

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

o per lo meno:

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

E posso aggiungere le etichette in seguito utilizzando names.arg con barplot 2.

Sono stato su questo per la maggior parte della giornata, dopo questo suo chiaro a vela per il resto del mio lavoro di automazione. Pensavo sulla strada giusta con tabulate, ma non riuscivo a raggiungerlo.

È stato utile?

Soluzione

Per prima cosa è necessario fattore vostri dati. Pensate ad un fattore esattamente nel modo in cui si potrebbe pensare di una variabile categoriale. Livelli dice che cosa aspettarsi, le etichette dà un bel nome.

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)

Se avete bisogno di percentuali, si può fare qualcosa di simile:

summary(graph_val)/length(graph_val)\

O questo:

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

Altri suggerimenti

Il seguente da "An Introduction to R" risponde direttamente alla tua domanda:

http: // cran. r-project.org/doc/manuals/R-intro.html#Frequency-tables-from-factors

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top