假设我有以下:现在(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