Ich muss diverse csv
Dateien aus einer Quelle in eine Liste importieren, indem Sie lapply
verwenden.Importieren Sie mehrere CSV-Dateien in eine Liste und überspringe Dateien, die nicht existieren
Der Punkt ist, dass die csv-Dateien, die ich möchte, sind z.B. 100 aber die Quelle enthält nur 80 von ihnen.
Wie kann ich die Dateien überspringen, die nicht in der Quelle enthalten sind?
Hier mein Code:
stations <- read.csv("stations.csv", header = TRUE)
filenames <- paste(stations$ID, "csv", sep = ".") #define the filenames
directory <- "~I/am/not/that/dumb" #set directory where take files to read
filenames <- file.path(directory, filenames) #construct the files paths
list <- lapply(filenames, read.csv, header = FALSE, stringsAsFactors = FALSE) #import the csv into a list
Aber ich habe den Fehler:
Error in file(file, "rt") : cannot open the connection In addition: Warning message: In file(file, "rt") : cannot open file '/Users/I/am/not/that/dumb/26003.csv': No such file or directory
offensichtlich, da die Datei 26003.csv nicht in der Quelle enthalten.
Irgendwelche Vorschläge zum Überspringen der nicht vorhandenen Dateien?
Die insgesamt zu importierenden CSV-Dateien sind >> 100, daher kann ich das nicht manuell machen.
verwenden Vielleicht die Ergebnisse 'dir (Verzeichnis) verwenden' oder den Schnittpunkt dieser mit Dateinamen: 'myFilenames <- schneiden (dir (Verzeichnis), Dateinamen))' sollte einen Vektor der Dateinamen in Ihrem ursprünglichen csv zurückgeben, die sich tatsächlich in dem Verzeichnis befinden. – lmo
Sie können die Dateien, die nicht mit 'file.exists' existieren, nicht 'ausfiltern'? – Abdou
Jungs vielen Dank, aber ich frage Sie :) –