Unione di due variabili per creare tabella di frequenza
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.
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