2016-04-20 10 views
1

Ich bin sehr sehr neu in R und muss einen Tisch machen. Ich habe folgendes aus Datensatz:Wie man eine Tabelle in R korrekt formatiert

reaktionszeit   arbeitszeit    wissen  
1 Sehr zufriedenstellend Sehr zufriedenstellend Sehr zufriedenstellend 
2 Sehr zufriedenstellend Sehr zufriedenstellend Sehr zufriedenstellend 
3 Sehr zufriedenstellend Sehr zufriedenstellend Sehr zufriedenstellend 
4 Sehr zufriedenstellend Sehr zufriedenstellend Sehr zufriedenstellend 
5 Sehr zufriedenstellend   Keine Angabe Sehr zufriedenstellend 
6 Sehr zufriedenstellend Sehr zufriedenstellend Sehr zufriedenstellend 
7  Zufriedenstellend  Zufriedenstellend Nicht zufriedenstellend 
8 Sehr zufriedenstellend Sehr zufriedenstellend Sehr zufriedenstellend 

Was ich im Grunde will, ist, dass die Kategorien auf der X-Achse und die verschiedenen Sortierungen auf der Y-Achse angezeigt werden, deshalb bekomme ich welche Kategorien erhielten die Bewertung, wie häufig. Das muss eine super leichte Aufgabe sein, aber ich kann das nicht erreichen.

Ich spielte mit der table() Funktion herum, kam aber zu keiner Schlussfolgerung.

Antwort

0

Wahrscheinlich mit einem Paket wie dplyr kann es leicht getan werden. Mit Basissystem, das Sie wie folgt vorgehen kann:

Für Tisch

df = data.frame(
    'reaktionszeit' = c('Sehr zufriedenstellend', 'Sehr zufriedenstellend', 'Zufriedenstellend'), 
    'arbeitszeit' = c('Sehr zufriedenstellend', 'Sehr zufriedenstellend', 'Sehr zufriedenstellend'), 
    'wissen' = c('Sehr zufriedenstellend', 'Nicht zufriedenstellend', 'Nicht zufriedenstellend')) 

I Tabelle

l_tab = apply(df, 2, table) 

Dann jeder Spalte gelten würde, würde ich die Namen in der data.frame erhalten

vals = unique(as.character(unlist(df))) 

Ich würde die Ergebnisse in einer neuen Tabelle

zusammenführen
tab = do.call(`rbind`, lapply(l_tab, function(x) x[vals])) 

Und schließlich werde ich die Namen setzen zu tab

colnames(tab) = vals 
tab 

Aber sicher, wenn Sie dplyr Paket versuchen wollen, werden Sie elegantere Wege finden.

+0

Hallo, ich habe es ohne das dplyr-Paket laufen, habe ich doch jetzt NAs in 3 Reihen ... d Sie wissen, wie man damit umgeht? – Markus

+0

Ja, Sie können die 'NA's durch Nullen durch' Tabs ersetzen [is.na (tab)] = 0' – marc1s

+0

Vielen Dank für Ihre Antwort, Entschuldigung, ich bin wirklich neu. In welchem ​​Schritt des oben genannten würde ich dies durchführen müssen, um nach dem Aufruf des letzten "Tabs" keine NA-Werte zu erhalten? – Markus

Verwandte Themen