如何生成可变数量的变量?

时间:2017-02-22 11:39:21

标签: r loops variables

我正在使用具有内部循环的循环。在每个内部循环中创建一个x时间序列(ts1,ts2,ts3,... tsx),然后我需要使用cbind绑定它们(data.f = cbind(ts1,ts2,ts3,... tsx) ))以便绘制data.f并查看在同一图中创建的所有时间序列。 问题是在每个周期中创建的时间序列数(x)都会发生变化,所以命令:

data.f=cbind(ts1, ts2, ts3,... tsx)

每次都会有不同数量的术语“tsi”。我怎样才能在我的一般循环中定义这个命令,其中包含在内部循环中创建的所有tsx,而我每次都不知道它们的数量?

2 个答案:

答案 0 :(得分:0)

尝试do.callcbind,如下所示

total <- abs(round(rnorm(1) * 20))
ts_final <- do.call(cbind,lapply(1:total,function(x){
   as.xts(1:10,Sys.Date()-1:10)
}))

答案 1 :(得分:0)

每当您发现自己在变量名称后附加数字时,您需要停留在轨道中并重新考虑您的代码:您应该使用向量或列表。

在您的特定情况下,创建一个时间序列列表而不是单个变量,并使用dplyr::bind_cols(time_series)do.call(cbind, time_series)将它们整理到一个表中。