将数字时间格式转换为 POSIXlt
Convert numeric time format to POSIXlt
我有时间从文件中导入。该列被视为数字,如下所示:
head(RawData$TimeStart, 10)
[1] 0.00 0.00 0.00 30.19 0.00 25.00 0.00 9.20 0.00 0.00
例如,此数据表示在 0.0 分钟和 30 分钟 19 秒 (30.19) 处采集的样本。
我希望现在将此列转换为以下格式:
> head(RawData$Converted, 10)
[1] "2017-07-05 00:00:00 AEST" "2017-07-05 00:00:00 AEST" "2017-07-05 00:00:00 AEST" "2017-07-05 00:30:19 AEST"
[5] "2017-07-05 00:00:00 AEST" "2017-07-05 00:25:00 AEST" "2017-07-05 00:00:00 AEST" "2017-07-05 00:09:20 AEST"
[9] "2017-07-05 00:00:00 AEST" "2017-07-05 00:00:00 AEST"
我试过以下方法:
RawData$Converted <- as.POSIXct(RawData$TimeStart, origin='1970-01-01', tz='Australia/Darwin')
但这并没有给出今天的日期/时间。我很困惑,所以任何帮助将不胜感激。
分解您的数值以将它们全部转换为秒,并将其添加到今天的日期时间:
x <- c(0.00,0.00,0.00,30.19,0.00,25.00,0.00,9.20,0.00,0.00)
as.POSIXct(format(Sys.Date()), tz="Australia/Darwin") + (floor(x)*60) + ((x-floor(x))*100)
# [1] "2017-07-05 00:00:00 ACST" "2017-07-05 00:00:00 ACST" "2017-07-05 00:00:00 ACST" "2017-07-05 00:30:19 ACST"
# [5] "2017-07-05 00:00:00 ACST" "2017-07-05 00:25:00 ACST" "2017-07-05 00:00:00 ACST" "2017-07-05 00:09:20 ACST"
# [9] "2017-07-05 00:00:00 ACST" "2017-07-05 00:00:00 ACST"
这是达尔文时间,ACST
而不是 AEST
,但我想这就是你想要的。
我有时间从文件中导入。该列被视为数字,如下所示:
head(RawData$TimeStart, 10)
[1] 0.00 0.00 0.00 30.19 0.00 25.00 0.00 9.20 0.00 0.00
例如,此数据表示在 0.0 分钟和 30 分钟 19 秒 (30.19) 处采集的样本。
我希望现在将此列转换为以下格式:
> head(RawData$Converted, 10)
[1] "2017-07-05 00:00:00 AEST" "2017-07-05 00:00:00 AEST" "2017-07-05 00:00:00 AEST" "2017-07-05 00:30:19 AEST"
[5] "2017-07-05 00:00:00 AEST" "2017-07-05 00:25:00 AEST" "2017-07-05 00:00:00 AEST" "2017-07-05 00:09:20 AEST"
[9] "2017-07-05 00:00:00 AEST" "2017-07-05 00:00:00 AEST"
我试过以下方法:
RawData$Converted <- as.POSIXct(RawData$TimeStart, origin='1970-01-01', tz='Australia/Darwin')
但这并没有给出今天的日期/时间。我很困惑,所以任何帮助将不胜感激。
分解您的数值以将它们全部转换为秒,并将其添加到今天的日期时间:
x <- c(0.00,0.00,0.00,30.19,0.00,25.00,0.00,9.20,0.00,0.00)
as.POSIXct(format(Sys.Date()), tz="Australia/Darwin") + (floor(x)*60) + ((x-floor(x))*100)
# [1] "2017-07-05 00:00:00 ACST" "2017-07-05 00:00:00 ACST" "2017-07-05 00:00:00 ACST" "2017-07-05 00:30:19 ACST"
# [5] "2017-07-05 00:00:00 ACST" "2017-07-05 00:25:00 ACST" "2017-07-05 00:00:00 ACST" "2017-07-05 00:09:20 ACST"
# [9] "2017-07-05 00:00:00 ACST" "2017-07-05 00:00:00 ACST"
这是达尔文时间,ACST
而不是 AEST
,但我想这就是你想要的。