将date增量的输出存储在R中的for循环中

我试图创build一个单一的vector(我打算用类似于Excel列的方式在数据框中使用),使用for循环以date增量为一天。 这个想法是第一轮从1月1日开始,1月2日第二轮,1月3日第三轮,等等…

我有一个POSIXctvariables(rdays),其中包含以下格式的每小时步骤中一年中前45天(从1月1日到2月14日)的date值:

[1] "2012-01-01 00:00:00 EST" "2012-01-01 01:00:00 EST" "2012-01-01 02:00:00 EST" [4] "2012-01-01 03:00:00 EST" "2012-01-01 04:00:00 EST" "2012-01-01 05:00:00 EST" [7] "2012-01-01 06:00:00 EST" "2012-01-01 07:00:00 EST" "2012-01-01 08:00:00 EST"... 

我正在使用以下for-loop来创build这些增量:

  for(i in 1:321){ range_days <- rdays + days(i) - days(1) a <- print(range_days) } a # returns only the last iteration (the 321th) 

这个想法是让所有的运行存储在一个向量(或列表)中,但是我找不到将它们全部连接起来的方法。 我需要这种格式的数据以类似于Excel中的VLOOKUP的方式来执行额外的计算。

这是一个补给循环,如下所示:

 all_results <- sapply(1:321, function(i){ range_days <- rdays + days(i) - days(1) print(range_days) }) 

结果将为您的循环中的每个迭代都有一个值。

如果我们需要使用创build一个list并将其分配给值

 range_days <- vector("list", 321) for(i in seq_len(321)){ range_days[[i]] <- rdays + days(i) - days(1) } 

然后,我们将list转换为一个vector (如果需要)

 range_days <- do.call(c, range_days) 

使用for循环:

在循环之外创builda空对象,然后将结果rbind到循环内部以存储所有迭代。

 a=NULL for(i in 1:321){ range_days <- rdays + days(i) - days(1) a <- rbind(a,range_days) }