In einer früheren Frage habe ich nach Tools zum Bearbeiten von CSV-Dateien gefragt .
Gavin ist mit einem Kommentar zu R Help von Duncan Murdoch verknüpft, der darauf hinweist , dass das Datenaustauschformat eine zuverlässigere Methode zum Speichern von Daten ist als CSV.
Für einige Anwendungen ist ein dediziertes Datenbankverwaltungssystem erforderlich. Für kleinere Datenanalyseprojekte scheint jedoch etwas Leichteres geeigneter zu sein.
Berücksichtigen Sie die folgenden Kriterien für die Bewertung eines Dateiformats:
- Zuverlässig : Die eingegebenen Daten müssen den eingegebenen Daten entsprechen. Daten sollten in unterschiedlicher Software konsistent geöffnet werden.
- einfach : es wäre schön, wenn das dateiformat einfach zu verstehen und idealerweise mit einem einfachen texteditor lesbar wäre; Es sollte einfach sein, ein einfaches Programm zu schreiben, um das Format zu lesen und zu schreiben.
- offen : Das Format sollte offen sein
- interoperabel : Das Dateiformat sollte von vielen Systemen unterstützt werden
Ich finde, dass durch Tabulatoren und Kommas getrennte Wertformate das Zuverlässigkeitskriterium nicht erfüllen. Obwohl ich denke, ich könnte eher das Importieren und Exportieren von Programmen als das Dateiformat verantwortlich machen. Ich muss oft kleine Anpassungen an den Optionen vornehmen,
read.table
um zu verhindern, dass ein seltsamer Charakter das Laden des Datenrahmens unterbricht.
Fragen
- Welches Dateiformat erfüllt diese Anforderungen am besten?
- Ist das Datenaustauschformat eine bessere Alternative? oder hat es seine eigenen probleme
- Gibt es ein anderes Format, das vorzuziehen ist?
- Beurteile ich TSV und CSV zu Unrecht? Gibt es einfache Tipps zum Arbeiten mit solchen Dateien, die das Dateiformat zuverlässiger machen?
quelle
write.DIF()
Einbahnstraße, daher fürchte ich, dass dies eine Einbahnstraße ist.Antworten:
Ich frage mich, ob hier eine Kriteriumskollision vorliegt.
Eine Beschwerde über Dateiformate wie Excel, SQL usw. ist, dass Sie die Datentypen im Voraus definieren müssen, damit sie sich gut verhalten, was dem Kriterium "etwas leichter" zuwiderläuft (da ich verstehe, dass Ihre Einschränkung mehr Zeit ist) verwandt als rechnerisch verwandt).
Im Gegensatz dazu erfordern die Kriterien, dass die Daten nicht durcheinandergebracht werden oder dass die Daten durcheinandergebracht werden können, eine Fehlerprüfung. Wenn Sie nicht zulassen, dass das System die Datentypen automatisch herausfindet (was im Wesentlichen der Fall ist, bei dem Excel versagt), können Sie Ihren Kuchen nicht auch essen.
IMO, von den beiden ist das zweite Kriterium wichtiger. Wenn die Datenintegrität einmal verletzt ist, wird die Analyse schwierig oder unmöglich. Verlorene Beobachtungen oder ungültige Werte (wenn nicht ordnungsgemäß überprüft) können alles durcheinander bringen.
In Bezug auf DIF ist der eigentliche Rohtext nicht für den Menschen lesbar und es wäre schwierig (IMO) für den Menschen, Daten einzugeben.
IMO, sollten Sie begrenzte Dateien einen fairen Shake geben. Wie oben in den Kommentaren erwähnt, ist die Datenverknüpfung hauptsächlich auf eine Teilmenge der von Ihnen verwendeten Tools zurückzuführen. Gut erzogene Programme sollten keine durch Trennzeichen getrennten Dateien entstellen. Die Hauptursache für Verstümmelung ist ein schlecht spezifizierter Begrenzer. Wenn Ihre Daten beispielsweise Kommas enthalten, ist eine CSV-Datei ungeeignet. Wenn es Registerkarten haben könnte, ist TSV ungeeignet. Für viele (aber nicht alle) Programme können Sie ein alternatives Trennzeichen angeben. Zum Beispiel habe ich die Tilde (~) in einigen schwierigen Fällen verwendet.
quelle
In jedem Fall würde ich RData-Dateien, die von R selbst erstellt wurden, als passend betrachten
Nah genug für mich. Wenn Sie unter Systemen eher Anwendungen als Betriebssystem verstehen , ist der letzte Punkt ein Fehler.
Oh, und RData ist effizient, da die Dateien jetzt standardmäßig komprimiert sind (was früher eine Option war, die standardmäßig deaktiviert war).
quelle
dput()
bietet eine Nur-Text-Alternative, die mit der Versionskontrolle funktionieren würde. Ein Appell von csv / tsv ist jedoch, dass, wenn ich ein Repository mit Daten teile (z. B. für einen Zeitschriftenartikel), die Daten mit jeder Software, die sie mögen, einfach neu analysiert werden können.Als Antwort auf Dirk Eddelbuettels Antwort schlage ich vor, das HDF5-Dateiformat zu verwenden . Es ist weniger einfach als das RData-Format, oder man könnte sagen, "umfangreicher", aber sicherlich interoperabler (kann in C, Java, Matlab usw. verwendet werden). Ich habe festgestellt, dass I / O mit großen HDF5-Dateien sehr schnell ist.
quelle
Ich bin mir nicht ganz sicher, warum ein festes Textformat mit den entsprechenden Metadaten nicht Ihren Kriterien entspricht. Es ist nicht so einfach zu lesen wie ein Trennzeichen, aber Sie benötigen Metadaten, um die Informationen trotzdem zu verwenden. Die Aufgabe des Schreibens einer Syntax zum Lesen des Programms hängt lediglich davon ab, wie groß und kompliziert die Struktur des Datensatzes ist. SPSS und Excel verfügen über eine grafische Benutzeroberfläche, die Sie bei diesen Aufgaben unterstützt.
Es gibt nur zwei Fehler bei CSV-Dateien, auf die ich gestoßen bin:
(Wenn Sie auf andere Probleme gestoßen sind, können Sie Beispiele nennen.)
Zwei werden mit einem unregelmäßigeren Trennzeichen gelöst, wie es drnexus vorschlägt (eine Pipe (|) ist eine, auf die ich zuvor gestoßen bin, aber eine Tilde (~) funktioniert genauso gut, da beide wahrscheinlich nicht in Zeichenfolgenfeldern enthalten sind.) Eine ist a Das Problem kann nicht einfach mit der von Ihnen verwendeten Software gelöst werden. Beides sind Probleme mit der Art und Weise, wie die Benutzer die Dateien geschrieben haben, und nicht mit der Software, mit der die Dateien gelesen wurden.
Ich möchte auch sagen, dass ich drnexus sowohl in diesem Thread als auch in seiner Antwort auf Ihren anderen aktuellen Thread zur Bearbeitung dieser Dateien zustimme . Sie scheinen sich über die von Ihnen verwendete Software (insbesondere Excel) zu beschweren und zu fragen, ob Daten in einem Format gespeichert werden sollen, das Ihrer schlecht benommenen Software entspricht. Vielleicht sollte die Frage lauten, wie Excel dazu gebracht werden kann, die automatische Formatierung von Nur-Text-Dateien zu beenden. Wie mir scheint, handelt es sich bei Ihren zuverlässigen Kriterien um ein Softwareproblem beim Lesen von Nur-Text-Dateien. Ich verwende R nicht für die Datenverwaltung, aber ich hatte nicht die Mühe, begrenzte Dateien in SPSS zu lesen, wie Sie anscheinend vermuten.
Wenn die Originaldateien nicht richtig geschrieben sind, was lässt Sie erwarten, dass eine Software die Datei zuverlässig liest? Und ein bestimmtes Dateiformat wird Sie mit Sicherheit nicht daran hindern, die Daten falsch in den Dateityp zu schreiben, mit dem Sie beginnen möchten.
quelle
Das häufigste Problem beim Nur-Text-Format ist, dass keine Metadaten gespeichert werden können. Wie definieren Sie fehlende Daten? Wie definieren Sie 1 = stimme überhaupt nicht zu, 2 = stimme überhaupt nicht zu, ... Arten von Inhalten im Nur-Text-Format? Im Nur-Text-Format müssen Sie ein anderes Dokument verwenden, um diese Metadaten zu definieren. Und in XML ist das nicht einfach.
Manchmal kann dieses Problem sehr störend sein.
Meine Lösung ist die Verwendung des SPSS-Datenformats, das in sich geschlossen und in SPSS einfach zu bearbeiten ist. Ich weiß, dass dies keine richtige Antwort auf Ihre Frage ist, aber ich habe sehr lange mit demselben Problem zu kämpfen, und dies ist meine derzeitige Lösung.
quelle