gpt4 book ai didi

r - 将值分配给 R 中的矩阵 - 值进入不同列的每一行

转载 作者:行者123 更新时间:2023-12-01 23:47:49 26 4
gpt4 key购买 nike

nr <- 2
nc <- 4
rxc <- nr*nc
m1 <- Matrix(0, nrow = nr, ncol = rxc, sparse = TRUE)
col <- 0
for(r in 1:nr){
m1[r,((r-1)*nc+1) :(((r-1)*nc+1)+3)] <- 1
col <- col+1
}

期望的输出:

[1,] 1 1 1 1 . . . .
[2,] . . . . 1 1 1 1

这可行,但它非常慢,因为我必须对 1000 万行执行此操作。在 R 中有更好的方法吗?

最佳答案

使用矩阵索引,它使用行/列的两列矩阵来确定更改了哪些单元格:

m1[cbind(rep(1:nr,each=nc),1:(nr*nc))] <- 1
m1
#2 x 8 sparse Matrix of class "dgCMatrix"
#
#[1,] 1 1 1 1 . . . .
#[2,] . . . . 1 1 1 1

关于r - 将值分配给 R 中的矩阵 - 值进入不同列的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28227378/

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