如何在R中迭代/循环多个编号的变量

如何在R中迭代/循环多个编号的变量,r,loops,variables,for-loop,matrix,R,Loops,Variables,For Loop,Matrix,所以,我对R语言的编程还不熟悉,所以我甚至不知道这样做是否可行。我有50个矩阵(50000行10列),我正试图填充以进行蒙特卡罗模拟。我在一个循环中创建了所有矩阵,它们被称为mCMatrix1,mCMatrix2等等 我想在循环中填充矩阵,效果如下: for (i in 50){ for (j in 50000){ num <- mu + tR %*% rnorm(10) # returns a 10 row, 1 column matrix mCMatrixC"i"[]=

所以,我对R语言的编程还不熟悉,所以我甚至不知道这样做是否可行。我有50个矩阵(50000行10列),我正试图填充以进行蒙特卡罗模拟。我在一个循环中创建了所有矩阵,它们被称为
mCMatrix1
mCMatrix2
等等

我想在循环中填充矩阵,效果如下:

for (i in 50){
for (j in 50000){
    num <- mu + tR %*% rnorm(10) # returns a 10 row, 1 column matrix
    mCMatrixC"i"[]= num[,1] # basically rotates the matrix to fill in the first row
}
}
for(50分之一){
适用于(j/50000){

numR在list和data.frames上运行,这与其他方法稍有不同。最简单的方法是创建一个矩阵名列表,然后遍历该列表

罗尔的方法是最简单的,可能也是最有效的

然后您只需通过mlist[n]访问它,n是您想要的矩阵

如果您想要一个完整的数据帧方法,它会稍微复杂一点,但是它提供了一个带有索引的数据表,而不是一个矩阵列表

library(dplyr)
yourData <- data.frame()

for (k in 1:50) {
  yourData <- yourData %>% 
    rbind((as.data.frame(matrix(rnorm(50000 * 10), nrow=50000, ncol=10))) %>%    
    mutate(Run = k))
}

您可以创建一个矩阵列表,以便更容易地访问,并使用以下方法访问它。我不确定您在循环中执行的矩阵操作,因此我选择了一个随机矩阵作为示例

> list_matrices = c()
> for (i in 1:10) { list_matrices[[i]] = matrix(rnorm(9), nrow=3)}
> list_matrices[[1]]
            [,1]       [,2]        [,3]
[1,] -0.09855292  0.2665513  0.72873888
[2,] -0.03005994 -0.4834303 -1.12356622
[3,]  0.98443875  0.5895932  0.07072777

如果核心问题是生成新的(编号的)变量名并为其赋值,那么我认为您可以使用以下方法:

for(i in 1:3) 
{
n<- sprintf("matr%d",i)
print(n)
assign(x=n,value = i)
}
matr1
matr2
matr3
for(1:3中的i)
{

n你是如何使用j的?最好将它们保存在一个列表中,而不是在你的工作区中有50多个对象,比如
mlist我认为你在第一次测试时根本没有测试过它。
for(i in 1:3) 
{
n<- sprintf("matr%d",i)
print(n)
assign(x=n,value = i)
}
matr1
matr2
matr3