循环在R中创建几个矩阵(可能使用粘贴)

Man*_*ino 2 loops r matrix paste

我想创建27个矩阵,其中包含2列和可变数量的行.我可以写出27行代码,如下所示:

 x1 = cbind(rep(1,34), rnorm(34))

 x2 = cbind(rep(1,36), rnorm(36))
Run Code Online (Sandbox Code Playgroud)

....

x27 = cbind(rep(1,k), rnorm(k))
Run Code Online (Sandbox Code Playgroud)

但它必须有更好的方法来做到这一点.我想到了一个循环,像这样:

aux = c(34, 36, ..., k) # auxiliar variable with number of rows for each matrix

for (i in 1:27) paste("x",i, sep="") =  cbind(rep(1,aux[i]), rnorm(aux[i]))
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用.我觉得这是一项简单的任务,但我没有想法.

有帮助吗?

ps.:我想到了一个数组,但我无法使用它.也许一份清单可以完成这项工作,我不知道.

Jos*_*ich 6

你需要assign:

for (i in 1:27) {
  assign(paste("x",i,sep=""), cbind(rep(1,aux[i]), rnorm(aux[i])))
}
Run Code Online (Sandbox Code Playgroud)

这将在您的全局环境中创建27个矩阵对象.