假設我有以下:現在(1)中的R檢索在O列表元素
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))
}
,例如;我想盡可能快地檢索file45
(假設它存在於這個隨機生成的數據中)的內容。
我曾嘗試以下:
contents <- unlist(Filter(function(x) x$path=="file45",a),recursive=FALSE)$contents
但是,列表搜索開銷使得從內存不是直接從磁盤讀取(在某種程度上)更慢讀。
是否有任何其他方式檢索內容的速度比從磁盤理想地讀取O(1)更快?
編輯:假設有在我的子列表中沒有重複filepaths
並有很大程度上超過50個子列表
你是否期待重複的路徑變量? – James
@詹姆斯沒有與我寫得不好的例子所暗示的相反的副本。假設'sample(0:600,1)'在整個50次迭代中不會返回任何副本,即不存在重複的文件路徑 – Imlerith