У меня есть некоторые значения timestamp
, такие как «2018-06-09 23: 59: 59.946» и «2018-06-09 23: 59: 59.938», которые в настоящий момент распознаются как строка символов в Rи мне нужно, чтобы они рассматривались как объект даты или времени.
Ниже приведен соответствующий фрагмент кода:
# Convert the timestamp from nanoseconds to millisecond precision
tradeOrders$timestamp =
as.POSIXct(gsub("D", " ", tradeOrders$timestamp))
tradeOrders$timestamp =
as.POSIXct(tradeOrders$timestamp, "%Y-%m-%d %H:%M:%OS3")
tradeOrders$timestamp =
format(tradeOrders$timestamp, "%Y-%m-%d %H:%M:%OS3")
Ниже приведен тот же код, но с head(tradeOrders$timestamp)
& class(tradeOrders$timestamp)
между каждым шагом и соответствующим выходом, чтобы вы могли видеть, что происходит,
R> tradeOrders =
+ tradeOrders[order(tradeOrders$timestamp, decreasing = TRUE), ]
R> # Convert the timestamp from nanoseconds to millisecond precision
R> tradeOrders$timestamp =
+ as.POSIXct(gsub("D", " ", tradeOrders$timestamp))
R> head(tradeOrders$timestamp)
[1] "2018-06-09 23:59:59 CDT" "2018-06-09 23:59:59 CDT"
[3] "2018-06-09 23:59:59 CDT" "2018-06-09 23:59:59 CDT"
[5] "2018-06-09 23:59:59 CDT" "2018-06-09 23:59:59 CDT"
R> class(tradeOrders$timestamp)
[1] "POSIXct" "POSIXt"
R> tradeOrders$timestamp =
+ as.POSIXct(tradeOrders$timestamp, "%Y-%m-%d %H:%M:%OS3")
R> head(tradeOrders$timestamp)
[1] "2018-06-09 23:59:59 CDT" "2018-06-09 23:59:59 CDT"
[3] "2018-06-09 23:59:59 CDT" "2018-06-09 23:59:59 CDT"
[5] "2018-06-09 23:59:59 CDT" "2018-06-09 23:59:59 CDT"
R> class(tradeOrders$timestamp)
[1] "POSIXct" "POSIXt"
R> class(tradeOrders$timestamp)
[1] "POSIXct" "POSIXt"
R> tradeOrders$timestamp =
+ format(tradeOrders$timestamp, "%Y-%m-%d %H:%M:%OS3")
R> head(tradeOrders$timestamp)
[1] "2018-06-09 23:59:59.946" "2018-06-09 23:59:59.938"
[3] "2018-06-09 23:59:59.583" "2018-06-09 23:59:59.374"
[5] "2018-06-09 23:59:59.257" "2018-06-09 23:59:59.225"
R> class(tradeOrders$timestamp)
[1] "character"
Я видел несколько других ответов, касающихся работы с R и временными метками с точностью до наносекунды или миллисекунды, которые помогли мне сгенерировать часть кода выше.Но теперь у меня возникают трудности с преобразованием вывода в дату-время.Я искал решения, включающие library(nanotime)
, а также lubridate
, но я застрял.
Кто-нибудь может мне помочь?