我有一个 for 循环:
for (i in 1:10){ Ai=d+rnorm(3)}
我想做的是有 A1, A2,A3...A10和我有变量 i在变量名称。
A1, A2,A3...A10
i
不是这样的,但我可能漏掉了一些小细节。如何使用 for 循环中的 i来分配不同的变量名?
您可以使用 assign,但是使用 assign(或 get)通常是编程结构不太像 R 的症状。通常,列表或矩阵允许更清晰的解决方案。
assign
get
列出清单:
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)) }