read.table

___ qstntxt ___

Ich habe eine Datei wie folgt aussehen:

%Vor%

Das Trennzeichen zwischen 1. und 2. ist '\ t', andere Trennzeichen sind Komma. Wie kann ich diese Art von Datensatz als Datenfeld mit 5 Feldern lesen.

    
___ answer23571860 ___
%Vor%

Dies tat:

  1. Erstellen Sie einen Scanner, um die Datei zu verarbeiten (Scannerscan)
  2. scannen ein die nächste Dateizeile (scan.nextLine ()) für jede Dateizeile basierend auf hasNextLine ()
  3. hat Tabulatoren durch Kommas ersetzt (.replace ("\ t", ",")), Also waren die Separatoren alle gleich
  4. in ein Array geteilt durch Kommas. Jetzt können Sie alle Daten unabhängig von den Länge jeder Zeile.
  5. Vergessen Sie nicht, den Scanner zu schließen, wenn Du bist fertig.
___ answer23569609 ___

"Ausgewogene" Daten

Gemessen an der Art und Weise, wie Sie Ihre Frage formuliert haben, scheint es, dass Sie wissen, dass Ihre Daten "ausgewogen" (rechteckig) sind.

Suchen Sie nach schnelleren Optionen? Vielleicht möchten Sie %code% aus "data.table" mit meiner experimentellen Funktion %code% kombinieren.

Die Lösung würde ungefähr so ​​aussehen (ersetzen Sie %code% durch %code% für eine Registerkarte):

%Vor%

Machen wir uns ein paar Daten zurecht:

%Vor%

Joshs Antwort:

%Vor%

%code% + %code% (das ist, als ob %code% zweimal verwendet wird, aber immer noch super schnell ist):

%Vor%

"Unsymmetrische" Daten

Obwohl es sich nicht auf Ihr Problem bezieht, sollte ich dies zum Wohle anderer erwähnen, die ein ähnliches Problem lösen müssen:

Eine Einschränkung des oben genannten ist, dass %code% nur "ausgeglichene" Daten verarbeitet. %code% hat kein %code% Argument wie %code% (und ich kann mich erinnern, irgendwo gelesen zu haben, dass es höchstwahrscheinlich kein solches Argument haben wird).

Hier ist ein Beispiel für das, was ich unter unausgewogen verstehe:

%Vor%

%code% kann das mit dem Argument %code% behandeln:

%Vor%

%code% verursacht in solchen Fällen einen unangenehmen Fehler, aber Sie können stattdessen meine Funktion %code% ausprobieren . Es ist nicht annähernd so schnell, aber immer noch anständig:

%Vor%     
___ tag123r ___ R ist eine freie, Open-Source-Programmiersprache und Softwareumgebung für statistische Berechnungen, Bioinformatik, Visualisierung und allgemeine Datenverarbeitung. Stellen Sie minimale, reproduzierbare, repräsentative Beispiele für Ihre Fragen bereit. Verwenden Sie dput () für Daten und geben Sie alle Nicht-Basis-Pakete mit Bibliotheksaufrufen an. Bilder für Daten oder Code nicht einbetten, eingerückte Codeblöcke verwenden. Verwenden Sie für statistische Fragen http://stats.stackexchange.com. ___ tag123readable ___ read.table ist eine grundlegende R-Funktion, die eine Datei im Tabellenformat liest und daraus einen Datenrahmen mit Fällen, die Zeilen und Variablen entsprechen, zu Feldern in der Datei erstellt. ___ answer23569070 ___

Ich würde das wahrscheinlich tun.

%Vor%

Entpacken Sie das ein bisschen:

  • %code% liest die Datei in R als Zeichenvektor mit einem Element für jede Zeile ein.
  • %code% ersetzt jedes Komma mit einem Tab, so dass wir jetzt Zeilen mit nur einer Art Trennzeichen haben.
  • %code% schließt den Zeichenvektor von (geänderten) Dateizeilen so auf, dass sie als Datei für %code% angezeigt werden, sodass ...
  • %code% kann auf sie wie eine normale Datei zugreifen.

.

    
___ qstnhdr ___ Wie lese ich Daten mit verschiedenen Trennzeichen? ___
1
Antwort

Angeben von Kommentaren mit mehreren Zeichen in Rs read.table ()

Ist es irgendwie möglich, ein Kommentarzeichen in R anzugeben, das aus mehr als einem Symbol besteht? zum Beispiel %Vor% funktioniert nicht.     
20.03.2013, 01:57
3
Antworten

Wie lese ich Daten mit verschiedenen Trennzeichen?

Ich habe eine Datei wie folgt aussehen: %Vor% Das Trennzeichen zwischen 1. und 2. ist '\ t', andere Trennzeichen sind Komma. Wie kann ich diese Art von Datensatz als Datenfeld mit 5 Feldern lesen.     
09.05.2014, 15:54