Приведение временной метки с точностью до миллисекунды, которая приводится в виде символа, в распознаваемый объект даты и времени в R - PullRequest
0 голосов
/ 14 марта 2019

У меня есть некоторые значения 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, но я застрял.

Кто-нибудь может мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...