Ich habe einen Datensatz mit Antworten auf einen Likert-Artikel auf einer 9pt-Skala. Ich möchte eine Häufigkeitstabelle (und einen Barplot) der Daten erstellen, aber einige Werte auf der Skala treten in meinem Dataset nie auf. Daher entfernt table()
diesen Wert aus der Häufigkeitstabelle. Ich möchte es stattdessen den Wert mit einer Häufigkeit von 0
präsentieren. Das heißt, mit der folgenden DatasetNullfrequenzen in Häufigkeitstabelle für Likert-Daten einschließen
# Assume a 5pt Likert scale for ease of example
data <- c(1, 1, 2, 1, 4, 4, 5)
Ich mag würde die folgende Frequenztabelle erhalten, ohne manuell auf eine Spalte 3
mit dem Wert 0
Namen einfügen.
1 2 3 4 5
3 1 0 2 1
Ich bin neu in R
, vielleicht habe ich etwas übersehen einfach, aber ich habe nicht über eine Funktion oder Option kommen, die das gewünschte Ergebnis liefert.
Gut. Danke, aber tabulate ist nicht die universelle Möglichkeit, Frequenztabellen zu erstellen. Es arbeitet mit positiven ganzen Zahlen. versuchen, z.B. 'tabulate (0: 1)' oder 'tabulate (-50000: 1)' (rate, warum die Ausgabe identisch ist, wenn die Argumente so unterschiedlich sind). Tabulate arbeitet an Ihrem speziellen Fall (Sie haben zufällig eine "Likert" -Skala, die bei 1 beginnt, und bei Faktoren (weil Ebenen nach Konvention als positive aufeinanderfolgende ganze Zahlen beginnend mit 1 codiert sind). Sie funktioniert nicht bei Zeichenvektoren oder mit Null und negative Werte – lebatsnok
... während ich meine Antwort gerne akzeptiere, würde ich sagen, dass die andere Antwort universeller ist: Konvertiere x zu Faktor und mache dann eine eindimensionale Kontingenztabelle mit 'table' arbeiten mit allen Arten von Daten, während "tabulate" nur mit einigen speziellen Fällen funktioniert. – lebatsnok
Tatsächlich funktioniert das nicht, wenn die 0-Häufigkeitsdaten dem Maximum entsprechen. Zum Beispiel, in dem obigen Beispiel, wenn es keine gab 5 in 'data',' tabulate' würde es auch nicht zeigen. – AugSB