gpt4 book ai didi

r - 加速大型矩阵中的索引

转载 作者:行者123 更新时间:2023-12-02 09:26:59 27 4
gpt4 key购买 nike

我在 R 中有一个大矩阵(如矩阵类)。它是稀疏的(仅包含 01)。

我所做的是(如果M是矩阵)

j<-list()
for(i in 1:dim(M)[1]){
which(M[i,]==1)->j[[i]]
}

这通常很快,但在如此大的矩阵(170万到5000)上它非常慢。我只是不敢相信没有更快的方法来获取每行都为 1 的那些列的索引....

最佳答案

我宁愿选择矢量化方法,并使用 split 而不是这些 apply/lapply 系列函数:

M  = matrix(c(1,1,0,0,1,0,1,1,1,1,1,1), 4)

with(data.frame(which(!!M, arr.ind=T)), split(col, row))
#$`1`
#[1] 1 2 3

#$`2`
#[1] 1 3

#$`3`
#[1] 2 3

#$`4`
#[1] 2 3

关于r - 加速大型矩阵中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36856638/

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