gpt4 book ai didi

r - R中是否有像bigmemory这样的包可以处理大型列表对象?

转载 作者:行者123 更新时间:2023-12-04 05:22:53 24 4
gpt4 key购买 nike

我知道 R 包 bigmemory 在处理大型矩阵和数据帧时效果很好。但是,我想知道是否有任何软件包或任何方法可以有效地处理大列表。

具体来说,我创建了一个列表,其元素是向量。我有一个 for 循环,在每次迭代期间,多个值被附加到该列表中的选定元素(向量)。起初,它运行得很快,但是当迭代超过 10000 次时,它逐渐变慢(一次迭代大约需要一秒钟)。我将经历大约 70000 到 80000 次迭代,之后列表会变得非常大。

所以我只是想知道 bigmemory 包中是否有像 big.list 这样的东西作为 big.matrix 可以加快整个过程。

谢谢!

最佳答案

我不确定这是否是一个有用的答案,但您可以使用 filehash 包以交互方式处理磁盘上的列表。

例如,这里有一些代码可以创建一个磁盘数据库,将一个预先分配的空列表分配给数据库,然后运行一个函数(获取当前时间)来填充数据库中的列表。

# how many items in the list?
n <- 100000
# setup database on disk
dbCreate("testDB")
db <- dbInit("testDB")
# preallocate vector in database
db$time <- vector("list", length = n)
# run function using disk object
for(i in 1:n) db$time[[i]] <- Sys.time()

在此过程中几乎没有使用 RAM,但是由于持续的磁盘 I/O,它非常慢(在我的一些测试中比在 RAM 中慢两个数量级) .所以我不确定这种方法是否能很好地回答如何加快处理大对象的问题。

关于r - R中是否有像bigmemory这样的包可以处理大型列表对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13521344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com