Eine Textdatei in R zeilenweise lesen

Jesse John 19 September 2023
Eine Textdatei in R zeilenweise lesen

Das zeilenweise Lesen von Textdateien ist in der R-Programmierung eine häufige Operation in Datenanalyse- und Manipulationsaufgaben. Dieser Artikel diskutiert die gebräuchliche Methode, eine Textdatei zeilenweise in R zu lesen.

Verwenden Sie die Funktion readLines() zum zeilenweisen Lesen einer Textdatei in R

Wir werden die Funktion readLines() solange verwenden, wie Zeilen gelesen werden. Da wir die Anzahl der Zeilen nicht kennen, müssen wir wissen, wann das Ende der Datei erreicht ist.

Die Funktion readLines() gibt einen leeren Zeichenvektor character(0) zurück, wenn keine weiteren Zeilen in der Datei sind.

An diesem Punkt werden wir die Schleife mit einem break beenden. Beachten Sie, dass die Schleife nicht bei leeren Zeilen abgebrochen wird, da diese die Zeilenumbruchmarker enthalten.

Wir werden auf jeder Schleifeniteration die Funktion identical() verwenden, um zu überprüfen, ob die Zeile identisch mit character(0) ist.

Wenn ja, brechen wir ab; andernfalls verarbeiten wir die Zeile. Im Beispiel geben wir sie aus.

Laut Dokumentation sollte die letzte Zeile der Textdatei einen Zeilenumbruchmarker für die Funktion readLines() haben, um konsistent zu funktionieren.

Erstellen Sie zunächst eine Beispieldatei mit folgendem Text und speichern Sie sie mit UTF-8-Kodierung und einem geeigneten Dateinamen (ersetzen Sie den Dateinamen im Code entsprechend).

The first line.
The second line.
The third line.

Last line.

Im Beispielcode werden wir Folgendes tun.

  • Erstellen Sie eine Verbindung und öffnen Sie sie.
  • Schleifen Sie über die Datei und geben Sie sie Zeile für Zeile aus.
  • Beenden Sie die Schleife, wenn die Zeile character(0) ist.
  • Schließen Sie die Verbindung. Eine explizit geöffnete Verbindung muss explizit geschlossen werden.

Beispielcode:

# Explicitly create and open a connection.
# REPLACE THE FILE NAME AS PER YOUR FILE.
myCon = file(description = "filename.txt", open="r", blocking = TRUE)

# The position in the connection advances to the next line on each iteration.
# Loop till the line is the empty vector, character(0).
repeat{
  pl = readLines(myCon, n = 1) # Read one line from the connection.
  if(identical(pl, character(0))){break} # If the line is empty, exit.
  print(pl) # Otherwise, print and repeat next iteration.
}

# Explicitly opened connection needs to be explicitly closed.
close(myCon)
rm(myCon) # Removes the connection object from memory.

Ausgabe:

The first line.
The second line.
The third line.

Last line.

Lassen Sie uns ein weiteres Beispiel betrachten.

Beispielcode:

# Specify the path to your text file
file_path <- "your_file.txt"

# Use the readLines function to read the file line by line
# It reads the entire content of the specified file and stores each line as an element in a character vector named lines
lines <- readLines(file_path)

# Loop through the lines and process them
for (line in lines) {
  # Process each line here (e.g., print it)
  cat(line, "\n")
}

Wenn Sie diesen Code ausführen, wird die Textdatei zeilenweise gelesen und jede Zeile angezeigt.

Ausgabe:

The first line.
The second line.
The third line.

Last line.

Denken Sie daran, your_file.txt durch den tatsächlichen Dateipfad der Beispieldatei zu ersetzen, mit der Sie arbeiten möchten.

Autor: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.