使用 mutate 在数据框中按设定数量自动递增?

Autoincrement by set amount in dataframe with mutate?

我正在尝试使用 UNIX 时间戳和带有 lubridate 和 dplyr 的任意行构建一个简单的调度程序,具有预设行数 (100) 和任意自动增量。不过,我终究无法弄清楚如何实施它;在 PHP 中,使用 for 循环会相对简单。

thedate <- as.Date(Sys.Date())
day1fromnow <- as.numeric(as.POSIXct(thedate + days(1)))
day8fromnow <- as.numeric(as.POSIXct(thedate + days(8)))
difftime <- (day8fromnow - day1fromnow)/100

因此,根据任意定义的所需行数 (100),我得到了 6048 的自动增量。

如果我有这个 100 行的数据框,目标是得到这个输出:

Text|UNIXTime
Test1|1568419200
Test2|1568425248
Test3|1568431296

这里最好的选择是什么?分配 df$UNIXTime[[1]] 初始值,然后随滞后变异?有没有更明显更容易的东西?

提前致谢!

我们可以使用 seqday1fromnowday8fromnow 之间创建序列,固定步长为 difftime。我们使用 paste0 创建一个 Text 列,每一行都有一个自动递增的数字。

data.frame(Text = paste0("Text",1:101), 
           UNIXTime = seq(day1fromnow, day8fromnow, difftime))

#       Text   UNIXTime
#1     Text1 1568419200
#2     Text2 1568425248
#3     Text3 1568431296
#4     Text4 1568437344
#5     Text5 1568443392
#6     Text6 1568449440
#....

请注意,如果我们使用 difftime 的步骤创建从 day1fromnowday8fromnow 的序列,它会为我们提供 101 个条目,包括 day8fromnow 处的最后一个条目。如果我们需要正好 100 行,我们可以删除任何一个条目。