gpt4 book ai didi

r - 有效地向R中的向量或列表添加或删除元素?

转载 作者:行者123 更新时间:2023-12-03 21:13:18 24 4
gpt4 key购买 nike

我正在实现一种算法,该算法涉及从集合中添加和删除大量内容。在 R 中,这很慢,因为据我所知,从向量中添加或删除内容很慢,因为必须重新分配整个向量。有没有办法更有效地做到这一点?

编辑:我当前的解决方案是使用与集合中的事物列表长度相同的 bool 向量,并将其用作成员资格表。

最佳答案

如果可以,在算法期间初始化向量使其长度等于其最大长度可能会有所帮助。

例如

vec <- rep(NA,10)
vec[1:3] <- 1:3
vec[4:5] <- 4:5
vec[6:10] <- 6:10

而不是
vec <- 1:3
vec <- c(vec,4:5)
vec <- c(vec,6:10)

相比
> system.time({vec <- rep(NA,10^4); for (i in 1:(10^4)) vec[i] <- i })
user system elapsed
0.043 0.001 0.044


> system.time({vec <- NULL; for (i in 1:(10^4)) vec <- c(vec,i) })
user system elapsed
0.249 0.089 0.335

关于r - 有效地向R中的向量或列表添加或删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2778510/

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