Wie man Manipulieren von Dateien in R

Gelegentlich können Sie ein Skript in R zu schreiben, die einen bestimmten Ordner und Aktionen auf allen Daten in den Dateien oder einer Teilmenge von Dateien in diesem Ordner durchqueren wird.

Um eine Liste von Dateien in einem bestimmten Ordner zu erhalten, verwenden list.files () oder dir (). Diese beiden Funktionen tun genau das Gleiche, aber aus Gründen der Abwärtskompatibilität Gründen wurde die gleiche Funktion hat zwei Namen:

> List.files (file.path ( "F", "git", "roxygen2")) [1] "roxygen2" "roxygen2.Rcheck" [3] "roxygen2_2.0.tar.gz" "roxygen2_2.1 tar.gz "
FunktionBeschreibung
Iist.filesListet Dateien in einem Verzeichnis.
list.dirsListen Unterverzeichnisse eines Verzeichnisses.
Datei existiertPrüft, ob eine bestimmte Datei an einem Ort vorhanden ist.
File.CreateErstellt eine Datei.
file.removeLöscht Dateien (und Verzeichnisse in Unix-Betriebssysteme).
tempfileGibt einen Namen für eine temporäre Datei. Wenn Sie einen File- zum Beispiel zu erstellen, mit File.Create ()oder write.table () mit diesem zurück Namen- R eine Datei in einem temporären Ordner erstellen wird.
tempdirGibt den Dateipfad eines temporären Ordner auf Ihrem Dateisystem.

Als nächstes erhalten Sie alle Ihre Kenntnisse mit Dateien über die Arbeit auszuüben. Im nächsten Beispiel erstellen Sie zuerst eine temporäre Datei, dann eine Kopie des speichern Iris Datenrahmen auf diese Datei. Um zu testen, ob die Datei auf der Festplatte ist, lesen Sie dann die neu erstellte Datei in eine neue Variable und diese Variable inspizieren. Schließlich löschen Sie die temporäre Datei von der Festplatte.

Beginnen Sie, indem Sie die tempfile () Funktion einen Namen in eine Zeichenfolge mit dem Namen einer Datei in einen temporären Ordner auf Ihrem System zurückzukehren:

> my.file lt; - tempfile ()> my.file [1] "C: Users Andrie AppData Lokale Temp RtmpGYeLTj file14d4366b6095"

Man beachte, daß das Ergebnis lediglich eine Zeichenkette, nicht eine Datei. Diese Datei ist noch nicht überall vorhanden sind. Als nächstes speichern Sie eine Kopie des Datenrahmens Iris nach meine Datei Verwendung der write.csv () Funktion. Dann nutzen list.files () zu sehen, ob R die Datei erstellt:

> Write.csv (Iris, file = my.file)> list.files (tempdir ()) [1] "file14d4366b6095"

Wie Sie sehen können, erstellt R die Datei. Jetzt können Sie verwenden read.csv () die Daten in eine neue Variable zu importieren aufgerufen file.iris:

> file.iris lt; - read.csv (my.file)

Benutzen str () zu untersuchen, die die Struktur file.iris. Wie erwartet file.iris ist ein data.frame von 150 Beobachtungen und sechs Variablen. Sechs Variablen, sagen Sie? Ja, sechs, obwohl die ursprüngliche Iris nur fünf Spalten.

Was hier geschah, war, dass der Standardwert des Arguments row.names von read.csv () ist row.names = TRUE. (Sie können dies bestätigen, indem Sie einen genauen Blick auf die Hilfe nehmen zu ?read.csv ().So gespeichert), R die ursprüngliche Zeile Namen Iris auf eine neue Spalte mit dem Namen X:

> Str (file.iris) 'data.frame: 150 obs. von 6 Variablen: $ X: int 1 2 3 4 5 6 7 8 9 10 ... $ Sepal.Length: num 5,1 4,9 4,7 4,6 5 5,4 4,6 5 4,4 4,9 ... $ Sepal.Width: num 3.5 3 3.2 3.1 3.9 3.4 3.4 3.6 2.9 3.1 ... $ Petal.Length: num 1,4 1,4 1,3 1,5 1,4 1,7 1,4 1,5 1,4 1,5 ... $ Petal.Width: num 0,2 0,2 ​​0,2 ​​0,2 ​​0,2 ​​0,4 0,3 0,2 0,2 ​​0,1 ... $ Spezies: Faktor w / 3 Ebenen "setosa", "versicolor", ..: 1 1 1 1 1 1 1 1 1 1 ...

Um das Dateisystem in der ursprünglichen Reihenfolge verlassen, können Sie file.remove () die temporäre Datei zu löschen:

> File.remove (my.file)> list.files (tempdir ()) Zeichen (0)

Wie können Sie das Ergebnis sehen list.files () ist eine leere Zeichenkette, da die Datei in dem Ordner nicht mehr existiert.

Menü