Ich habe das hdf5-Paket erfolgreich auf einem Linux-Rechner installiert. Ich möchte nun Daten aus einer großen Anzahl von hdf5-Dateien in einer Schleife einlesen und eine Zeitreihe erstellen. Jede hdf5-Datei entspricht einer anderen Zeit. Nach dem Einlesen vieler Dateien (knapp über 1000) sagt R, dass zu viele Dateien geöffnet sind. Ich würde gerne einen Weg finden, sie zu schließen, damit die Schleife weiterlaufen kann. Hier ist der Code:Wie soll ich eine hdf5-Datei nach dem Laden in R schließen?
fdate <- "200605312355" # the first date for my test loop
fmax <- 1400
arr <- vector()
for (i in 1:fmax){
fname <- paste(fdate,"_.h5") # path of h5 file
fid <- hdf5load(fname) # fid = NULL
arr[i] <- somevariable$data_array[lon,lat]
# would like to close the file here
fdate <- newdate(fdate,60*5) # a function that increments the date by seconds.
}
Das hdf5 Paket enthält die Funktion hdf5cleanup, die aussieht wie es Dinge reinigen könnte, aber es erfordert eine Dateikennung. Die FID in meinem obigen Code gibt NULL zurück. Versuche, stattdessen den Dateinamen einzufügen, d. H. Hdf5cleanup (fname), führt zum Abbruch von R. Vielleicht soll hdf5load die Datei schließen und schlägt fehl. Wenn dies der Fall ist, gibt es eine Möglichkeit, die Verbindung zu schließen, indem Sie einen Befehl system() oder anderweitig ausgeben?
Zufälligerweise gibt showConnections() nichts zurück, wörtlich nur die Header-Namen "Beschreibung Klasse Modus Text isopen kann lesen kann schreiben".
Meine Frage kurz: Wie schließe ich die Verbindung zu einer hdf5-Datei in R nach dem Laden mit hdf5load()?
Ich 'R' bricht ab, Sie sollten den Betreuer des' hdf5' Pakets kontaktieren, weil das nicht passieren sollte. Der Betreuer kann Ihnen auch den korrekten Aufruf zum Schließen der Dateien mitteilen. –