使用 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]] 初始值,然后随滞后变异?有没有更明显更容易的东西?
提前致谢!
我们可以使用 seq
在 day1fromnow
到 day8fromnow
之间创建序列,固定步长为 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
的步骤创建从 day1fromnow
到 day8fromnow
的序列,它会为我们提供 101 个条目,包括 day8fromnow
处的最后一个条目。如果我们需要正好 100 行,我们可以删除任何一个条目。
我正在尝试使用 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]] 初始值,然后随滞后变异?有没有更明显更容易的东西?
提前致谢!
我们可以使用 seq
在 day1fromnow
到 day8fromnow
之间创建序列,固定步长为 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
的步骤创建从 day1fromnow
到 day8fromnow
的序列,它会为我们提供 101 个条目,包括 day8fromnow
处的最后一个条目。如果我们需要正好 100 行,我们可以删除任何一个条目。