当我尝试使用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