有没有一种方法可以将四位数转换为r中的时间值



当我尝试使用as.POSIXlt或strptime时,我会得到一个'NA'值。

我需要做的是将3位数和4位数(例如2300或115(分别转换为23:00或01:15,但我根本无法获得任何代码。

基本上,这个数据名称的输出:

Time
1   2345
2   2300
3   2130
4   2400
5    115
6   2330
7    100
8   2300
9   1530
10   130
11   100
12   215
13  2245
14   145
15  2330
16  2400
17  2300
18  2230
19  2130
20    30

应该是这样的:

Time
1   23:45
2   23:00
3   21:30
4   24:00
5   01:15
6   23:30
7   01:00
8   23:00
9   15:30
10  01:30
11  01:00
12  02:15
13  22:45
14  01:45
15  23:30
16  24:00
17  23:00
18  22:30
19  21:30
20  00:30

我认为您可以使用以下解决方案。然而,这实际上是在产生一个字符向量:

gsub("(\d{2})(\d{2})", "\1:\2", sprintf("%04d", df$Time)) |>
as.data.frame() |>
setNames("Time") |>
head()
Time
1 23:45
2 23:00
3 21:30
4 24:00
5 01:15
6 23:30

相关内容

  • 没有找到相关文章

最新更新