Ho un data.frame e sto cercando di creare una tabella di frequenza che mostri la frequenza dei valori per ogni riga. Così sto iniziando con qualcosa di simile:convertire un frame di dati in una tabella di frequenza specificatamente formattata
d <- data.frame(a=c(1,2,3), b=c(3,4,5), c=c(1,2,5))
che assomiglia a questo:
a b c
1 3 1
2 4 2
3 5 5
Quello che mi piacerebbe davvero creare è un data.frame contingenza o matrice che assomiglia a questo:
1, 2, 3, 4, 5, 6, 7, 8, 9
2, 0, 1, 0, 0, 0, 0, 0, 0
0, 2, 0, 1, 0, 0, 0, 0, 0
0, 0, 1, 0, 2, 0, 0, 0, 0
La riga superiore è semplicemente una riga di etichetta e non deve necessariamente essere nel risultato finale. Ma lo aggiungo lì per l'illustrazione. Ogni riga mostra le cifre 1: 9 e il numero di volte in cui ogni cifra compare in ogni riga dei dati di partenza.
Non riesco a capirmi un modo semplice per creare questo. Anche se sembra che la funzione table()
dovrebbe essere d'aiuto, non riesco a farmi dare l'amore. Qualsiasi aiuto o idee sono apprezzati.
Hai un data.frame pieno di numeri? Quanto velocemente dimentichi, cavalletta ... usa una matrice. –
L'uso di una matrice cambia la risposta? –
Non cambia la risposta di Josh O'Brien perché 'apply' converte automaticamente il primo argomento in una matrice/matrice. Non sono sicuro di Ilya. Per lo più scherzavo comunque. ;-) –