gpt4 book ai didi

r - 将新行一一添加到矩阵

转载 作者:行者123 更新时间:2023-12-04 13:09:30 25 4
gpt4 key购买 nike

这是一个简单的问题,但对于我的生活,我找不到答案。

for (w in 1:47) {
s <- w + 1;

while(s < 49) {
xx <- wcc(x$codes[w,], x$codes[s,], 20)
C = matrix(rbind(w,s,xx), nrow=1128, ncol=3, byrow=TRUE)
s <- s + 1;
}
}

在这个循环中,我想将 XX 一一放入矩阵 C 中。

最佳答案

预先分配你的最终矩阵将比你正在做的更有效率。重复调用 matrixrbind 意味着每次迭代每个(嵌套)循环时都将数据复制到新对象。

即使您不知道所需的最终大小,高估最终矩阵也会节省您的时间。 See here 进行一些讨论。

这是一个如何执行此操作的简单示例:

iter <- 10
out <- matrix(NA, nrow=iter, ncol=3)

for (n in 1:iter)
out[n,] <- c(n, 2*n, n+1)

或者,您可以完全跳过构建输出对象而只使用 sapply :
t(sapply(1:iter, function(n) c(n, 2*n, n+1)))

无论哪种方式,您都会得到一个不错的矩阵:
      [,1] [,2] [,3]
[1,] 1 2 2
[2,] 2 4 3
[3,] 3 6 4
[4,] 4 8 5
[5,] 5 10 6
[6,] 6 12 7
[7,] 7 14 8
[8,] 8 16 9
[9,] 9 18 10
[10,] 10 20 11

关于r - 将新行一一添加到矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20730537/

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