在 for 循环中使用 R 更改变量名

我有一个 for 循环:

for (i in 1:10){ Ai=d+rnorm(3)}

我想做的是有 A1, A2,A3...A10和我有变量 i在变量名称。

不是这样的,但我可能漏掉了一些小细节。如何使用 for 循环中的 i来分配不同的变量名?

233220 次浏览

您可以使用 assign,但是使用 assign(或 get)通常是编程结构不太像 R 的症状。通常,列表或矩阵允许更清晰的解决方案。

  • 列出清单:

    A <- lapply (1 : 10, function (x) d + rnorm (3))
    
  • with a matrix:

    A <- matrix (rep (d, each = 10) + rnorm (30), nrow = 10)
    
d <- 5
for(i in 1:10) {
nam <- paste("A", i, sep = "")
assign(nam, rnorm(3)+d)
}

更多信息 给你甚至 给你

另一种选择是使用 eval 和 parse,如

d = 5
for (i in 1:10){
eval(parse(text = paste('a', 1:10, ' = d + rnorm(3)', sep='')[i]))
}

你可以试试这个:

  for (i in 1:10) {
assign(as.vector(paste0('A', i)), rnorm(3))
}