Ich versuche, einen Datenrahmen in eine gzip-Datei zu schreiben, aber mit Problemen.
Hier ist mein Codebeispiel:
%Vor%Fehler in
writeLines(df1)
: ungültiges 'text' Argument
Irgendwelche Vorschläge?
BEARBEITEN: Eine Beispielzeile des Zeichenvektors, den ich schreiben möchte, ist:
%Vor%Die Klassenbezeichnung / y-Variable wird von den x-vars durch ein "|" getrennt und Variablennamen werden von Werten durch ":" und Leerzeichen zwischen Variablen getrennt.
EDIT2: Ich entschuldige mich für den Wortlaut / das Format der Frage, aber hier sind die Ergebnisse: Alte Methode:
%Vor%Neue Methode:
%Vor%Vielen Dank, dass Sie mir geholfen haben, dies herauszufinden.
writeLines
erwartet eine Liste von Strings. Die einfachste Möglichkeit, dies in eine gzip-Datei zu schreiben, wäre
Dies wird es als ein gezipptes CSV schreiben. Siehe auch write.table
und write.csv2
für alternative Möglichkeiten, die Datei zu schreiben.
EDIT: Basierend auf den Updates zum Post über das gewünschte Format, habe ich den folgenden Helfer (schnell zusammengewürfelt, wahrscheinlich tonnenweise Vereinfachung):
%Vor%So sieht die Ausgabe wie
aus %Vor%Und alles, was notwendig ist, ist die Übergabe der gzfile an writeLines, um die gewünschte Ausgabe zu erhalten.
Um etwas in eine gzip-Datei zu schreiben, müssen Sie es in den Text "serialisieren". Für R-Objekte können Sie mit dput
:
Sie haben jedoch gerade eine Textdarstellung des Datenrahmens in die Datei geschrieben. Dies ist wahrscheinlich weniger effizient als die Verwendung von save(df1,file="df1.RData")
, um es in einer nativen R-Datendatei zu speichern. Fragen Sie sich: Warum speichere ich es als .gz-Datei?
In einem schnellen Test mit einigen Zufallszahlen war die gz-Datei 54k, die .RData-Datei war 34k
Tags und Links r zip compression gzip vowpalwabbit