Ich weiß, dass table
nicht der bevorzugte Weg ist, eine Häufigkeitstabelle als data.table
zu erstellen. Aber angenommen, ich habe ein table
, aus welchem Grund auch immer, das ich in ein data.table
konvertieren möchte. Die data.table
Konvertierung funktioniert nicht auf die gleiche Weise wie die data.frame
Konvertierung:
data.frame
konvertiert die table
-Daten in eine data.frame
, während data.table
versucht, das ursprüngliche table
-Objekt als Spalte zu speichern. (Ich habe dies unter anderem mit tab <- table(1:n)
für mehrere Werte von n
getestet.)
Beachten Sie auch, dass as.data.frame
genauso funktioniert wie data.frame
, as.data.table
jedoch vollständig:
Bei einem scheinbar sehr eng verwandten Problem, wenn die Tabelle ausreichend groß ist (informelles Testen schlägt .Dim > 100
vor), erhalte ich sehr seltsame Fehler, wenn ich versuche, print
:
Beachten Sie, dass print(data.table(table(1:100)))
keinen Fehler aufweist, sondern nur eine Spalte V1
anzeigt, während print(data.frame(table(1:100)))
Spalten Var1
und Freq
hat.
Gibt es eine bessere Problemumgehung als data.table(data.frame(...))
? Ist es besser, immer table
zu vermeiden? Und ist der print
Fehler direkt von diesem verursacht, oder ist es etwas tiefer?
Es gibt eine Funktion as.data.frame.table
, die mit data.frame(tbl-object)
aufgerufen wird. Es konvertiert das matrixartige Tabellenobjekt in ein langformatiges Datenobjekt. Es scheint noch keine as.data.table.table-Funktion zu geben, und es sollte wohl sein, und ich würde zustimmen, dass sie sich genauso verhalten sollte wie die as.data.frame-Methode, anstatt von der Matrix zu übernehmen (wie es die Tabelle wäre) normalerweise erben:
Ich denke, das sollte eine Feature-Anfrage sein und ich glaube nicht, dass es mit dem zweiten Problem zusammenhängt.
Ihre zweite Frage scheint wie ein Fehler zu sein. Die data.table
Autoren am prominentesten @ MatthewDowle sind in der Regel sehr reaktionsschnell, und Sie sollten in Erwägung ziehen, einen Bericht einzureichen.
Tags und Links r data.table