2016-11-10 11 views
-1

Also arbeite ich in R mit data table und es gibt etwa 5000 Beobachtungen. Ich habe alle diese neuen Klassenvariablen in ihre eigenen Kategorien (z. B. Klasse 1, Klasse 2, Klasse 3 usw.) umgewandelt und möchte sie nun in eine Variable namens Grade zusammenfassen. Ich habe die diesen Befehl verwendet:schmelzen in data.table in r

DT.m1 = melt(
    MathSummary, 
    id.vars = c("Date", "Total.Events", "Unique.Events"), 
    measure.vars = c("Gradeprek", "Grade1", "Grade2", "Grade3", "Grade4", 
           "Grade5", "Grade6", "Grade7", "Grade8", 
           "Algebra1", "Algebra2", "Geometry", "Precalculus"), 
    value.factor=TRUE, na.rm=TRUE 
) 

aber wenn es darum ging Ergebnisse, es gab mir 65000 Beobachtungen. Vielleicht hat es Duplikate oder ähnliches erzeugt. Ein Penny für deine Gedanken?

+1

13 measure.vars * 5000 = 65000 Zeilen. Das ist es, was "schmelzen" tut. – thelatemail

+0

Was haben Sie als Ausgabe erwartet? –

+0

Ich erwarte, dass es immer noch die gleichen 5000 Beobachtungen hat, aber in einer Spalte mit der Bezeichnung Note –

Antwort

0

Ich denke, Ihr Code ist korrekt und Sie verstehen einfach nicht, wie Schmelze funktioniert. Melt wandelt Ihre Daten in Long-Format um und es sieht so aus, als würde Ihr Code funktionieren, da Sie 13 Variablen und 5000 Beobachtungen haben. Wenn Sie also in ein langes Format umgewandelt werden, erhalten Sie 13 * 5000 = 65000 Beobachtungen.

Im langen Format sollte eine Zeile jedoch nicht als eine einzelne Beobachtung betrachtet werden, sondern als eine einzelne Messungsinstanz. In einem langen Format werden Sie feststellen, dass die erzeugte geschmolzene Daten Tabelle aussehen wird.

Datum Total.Events Unique.Events Variablenwert

Und so für jede einzelne Kombination Ihrer drei Maßnahmen werden Sie dreizehn Zeilen, und jede Zeile wird eine Variable sein - Wertepaar.