ich in einer Reihe von Textdateien lese, die Datenzeilen mit einigen Kopfzeilen an der Spitze, die Informationen für die Daten enthalten, etwa so:Leselinien in der Nähe Kommentare in R mit read.table
Test file
#
File information
1 2 3 4
#
a 2
b 4
c 6
d 8
Ich möchte die verschiedenen Informationen einzeln aus dieser Datei einlesen. Ich kann dies erreichen gerade fein wie so:
file <- read.table(txt, nrow = 1)
name <- read.table(txt, nrow = 1, skip = 2)
vals <- read.table(txt, nrow = 1, skip = 3)
data <- read.table(txt, skip = 5)
Aufgrund der zwei leeren Kommentarzeilen, habe ich auch in den Daten wie diese gelesen haben könnte:
file <- read.table(txt, nrow = 1)
name <- read.table(txt, nrow = 1, skip = 1) # Skip changed from 2
vals <- read.table(txt, nrow = 1, skip = 3)
data <- read.table(txt, skip = 4) # Skip changed from 5
Das ist schön und gut, aber die Textdateien haben nicht immer die gleiche Anzahl von leeren Kommentarzeilen; manchmal sind sie anwesend, manchmal nicht. Wenn ich die Kommentarzeilen in meiner Beispieltextdatei entweder (oder beide) verliere, funktioniert keine meiner Lösungen weiter.
Gibt es eine robustere Möglichkeit, eine Textdatei einzulesen, in der die skip
Variable niemals eine Kommentarzeile zählt? Ersetzen
(Die Verwendung von textConnection(...)
ist Funktionen Trick eine Zeichenfolge erwartet Dateiverbindungen in der Verarbeitung:
Etwas wie, Linien <- readLines (txt); lines_clean <- linien [substr (linien, 1, 1)! = "#"] ' –