R:动态创建变量

时间:2012-02-05 09:20:21

标签: r

我想在创建一系列变量v1,v2,... 运行程序时请求一些帮助。 我为一个这样的变量运行以下代码:

FinishAt <- 1
Sequence <- 1:FinishAt
AsCharacterSequence <- as.character(Sequence)

aa <- paste("v", AsCharacterSequence[1], sep="", collapse="") # [1] "v1"
bb <- eval(substitute(variable), list(variable=as.name(a))) # v1

我面临的问题是我们如何使v1成为一个带有值的变量(假设为5)。

提前谢谢。

1 个答案:

答案 0 :(得分:4)

您可以使用assign动态定义变量。例如,以下生成三个变量v1 ... v3:

var_names <- paste("v", 1:3, sep="")
for (v in var_names) assign(v, runif(1))

assign的对应方为get,也就是说,如果您想要变量的值,请使用以下内容:

bb <- sapply(var_names, get)

另请注意,assignget都有一个可选的envir参数,可让您将这些变量与其余代码保持一致。

我不确定,但我认为如果有很多变量,分配/获取比列表更快是可能的,至少如果你想查找一些值。