gpt4 book ai didi

r - 在 R 中的循环后使用索引命名矩阵

转载 作者:行者123 更新时间:2023-12-02 05:14:19 24 4
gpt4 key购买 nike

请原谅我幼稚的问题。

我有一个循环,每一步都返回一个矩阵 b .我想根据迭代次数以不同的名称保存每个循环中的每个矩阵。例如,在第一次迭代结束时,我想得到名为 b1 的矩阵,在第二次迭代结束时 b2等等……

例如,让我们使用以下代码:

count=0
a=matrix(c(1,2,3,4,5,6,7,8,9,10,11,12), nrow=6)
for (count in 1:10) {
b<-cbind(a[,1],matrix(c( a[sample(nrow(a)),2]), nrow=nrow(a)) )
print(b)
}
count+1

这里,原始矩阵是matrix a其中有 6行和 2列。我排列了第二列中元素的顺序。结果 matrix b , 是包含原始 matrix a 的第一列第一列的矩阵和作为第二列的置换第二列 a .

谁能帮帮我?

最佳答案

您真的不想将它们存储为单独的变量 - 将它们存储为 10 个矩阵的列表会好得多。使用 replicate 可以很容易地做到这一点:

lst = replicate(10, cbind(a[,1],matrix(c( a[sample(nrow(a)),2]), nrow=nrow(a)) ),
simplify=FALSE)

然后您可以像这样访问 10 个矩阵中的任何一个:

lst[[1]]
# [,1] [,2]
#[1,] 1 7
#[2,] 2 10
#[3,] 3 11
#[4,] 4 8
#[5,] 5 9
#[6,] 6 12

同样,您可以像这样遍历它们:

for (m in lst) {
print(m)
# do something with your matrix m
}

关于r - 在 R 中的循环后使用索引命名矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898370/

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