如何在R中迭代/循环多个编号的变量
所以,我对R语言的编程还不熟悉,所以我甚至不知道这样做是否可行。我有50个矩阵(50000行10列),我正试图填充以进行蒙特卡罗模拟。我在一个循环中创建了所有矩阵,它们被称为如何在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"[]=
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