schreibe eine gzip-Datei aus dem Datenrahmen

7

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.

    
screechOwl 08.01.2013, 23:02
quelle

3 Antworten

16

writeLines erwartet eine Liste von Strings. Die einfachste Möglichkeit, dies in eine gzip-Datei zu schreiben, wäre

%Vor%

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.

    
user295691 08.01.2013, 23:09
quelle
4

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 :

eine Stichprobe erstellen %Vor%

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

    
Spacedman 08.01.2013 23:10
quelle
3

Eine weitere sehr einfache Möglichkeit ist es:

%Vor%

Die Idee stammt von: Ссылка

    
Gorka 03.01.2017 16:59
quelle

Tags und Links