r - 如何在 R 中生成具有特定开始日期/时间的日期和时间序列

标签 r date dplyr lubridate posixct

我希望生成或完成一列日期和时间。我有一个由四个数字列和一个 POSIXct 时间列组成的数据框,如下所示:

    CH_1   CH_2  CH_3  CH_4           date_time
1 -10096 -11940 -9340 -9972 2018-07-24 10:45:01
2 -10088 -11964 -9348 -9960                <NA>
3 -10084 -11940 -9332 -9956                <NA>
4 -10088 -11956 -9340 -9960                <NA>
5 -10084 -11944 -9332 -9976                <NA>
6 -10076 -11940 -9340 -9948                <NA>
7 -10088 -11956 -9352 -9960                <NA>
8 -10084 -11944 -9348 -9980                <NA>
9 -10076 -11964 -9348 -9976                <NA>
0 -10076 -11956 -9348 -9964                <NA>

我想为 date_time 列顺序生成日期和时间,增加1 秒,直到数据框填满。 (即下一个日期/时间应为 2018-07-24 10:45:02)。这意味着对于多个数据集是可重现的,并且需要填充的行数并不总是已知,但开始日期/时间将始终出现在第一个单元格中。

我知道解决方案可能在 seq.Date (或类似的)内,但我遇到的问题是我并不总是知道结束日期/时间,这是我发现的大多数示例所需要的。任何帮助将不胜感激!

最佳答案

这是一个 tidyverse 解决方案,使用 Zygmunt Zawadzki 的示例数据:

library(lubridate)
library(tidyverse)

df %>% mutate(date_time = date_time[1] + seconds(row_number()-1)) 

输出:

             date_time
1  2018-01-01 00:00:00
2  2018-01-01 00:00:01
3  2018-01-01 00:00:02
4  2018-01-01 00:00:03
5  2018-01-01 00:00:04
6  2018-01-01 00:00:05
7  2018-01-01 00:00:06
8  2018-01-01 00:00:07
9  2018-01-01 00:00:08
10 2018-01-01 00:00:09
11 2018-01-01 00:00:10

数据:

df <- data.frame(date_time = c(as.POSIXct("2018-01-01 00:00:00"), rep(NA,10)))

关于r - 如何在 R 中生成具有特定开始日期/时间的日期和时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52601598/

相关文章:

r - 按两列中的值范围匹配数据框中的行

使用点 "."而不是破折号 "-"时,Java 无法解析日期

php - 当日期刚刚保存为 UNIX 时间戳时,针对特定日期的 MySQL 过滤器

r - 在 R - 从 data.frame 中的所有行生成成对 data.frame

r - 计算一行中第一个和最后一个观察值之间的差异,其中每行都不同

r - 将矩阵变换为部分平均矩阵

r - 使用 dplyr 中的 group_by 函数来操作 data.frame 对象集

R 函数检查另一个函数中的参数数量?

C# 根据日期列表计算日期范围

r - dplyr 的过滤器不适用于 lubridate 的时间格式?