我想在创建一系列变量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)。
提前谢谢。
答案 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)
另请注意,assign
和get
都有一个可选的envir
参数,可让您将这些变量与其余代码保持一致。
我不确定,但我认为如果有很多变量,分配/获取比列表更快是可能的,至少如果你想查找一些值。