nehme ich folgendes:ein Listenelement in O Abrufen (1) in R
a <- vector('list',50)
for(i in 1:50)
{
a[[i]] <- list(path=paste0("file",sample(0:600,1)),contents=sample(1:5,10*i,replace=TRUE))
}
nun beispielsweise; Ich möchte den Inhalt von file45
(vorausgesetzt, es existiert in diesen zufällig generierten Daten) so schnell wie möglich abrufen.
Ich habe versucht, die folgenden:
contents <- unlist(Filter(function(x) x$path=="file45",a),recursive=FALSE)$contents
jedoch die Liste der Suche Overhead macht aus dem Speicher noch langsamer als das Lesen direkt von der Festplatte zu lesen (zu einem gewissen Grad).
Gibt es eine andere Möglichkeit, den Inhalt in etwas schneller als das Lesen von der Festplatte im Idealfall O (1) abrufen?
edit: davon aus, dass es keine doppelten filepaths
in meinen Teil-Listen ist und dass es weitgehend mehr als 50 Sublisten
Erwarten Sie Duplikate in der Pfadvariablen? – James
@James gibt es keine Duplikate im Gegensatz zu dem, was mein schlecht geschriebenes Beispiel vermuten lässt. Angenommen, "sample (0: 600,1)" würde keine Duplikate über die 50 Iterationen zurückgeben, d. H. Keine doppelten Dateipfade. – Imlerith