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

时间:2013-05-15 13:27:08

标签: r

我有一个for循环:

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

我想要做的是A1, A2,A3...A10我在变量名中有变量i

这种方法不起作用,但我可能错过了一些小事。如何在for循环中使用i来指定不同的变量名?

3 个答案:

答案 0 :(得分:71)

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

更多信息here甚至here

答案 1 :(得分:9)

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

  • 列表:

    A <- lapply (1 : 10, function (x) d + rnorm (3))
    
  • 带矩阵:

    A <- matrix (rep (d, each = 10) + rnorm (30), nrow = 10)
    

答案 2 :(得分:3)

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

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