R xts: миллисекундный индекс - PullRequest
5 голосов
/ 20 марта 2012

Как мне создать объект xts, индексы которого включают миллисекунды? Я не могу найти спецификацию формата на странице справки POSIXlt, но в indexFormat () есть ссылка на% OS.

UPDATE

xts пример, основанный на ответе зоопарка Гэвина:

> options(digits.secs = 3)
> data(sample_matrix)
> sample.xts = xts(sample_matrix, Sys.time() + seq(0, by = 0.1, length = 180))
> head(sample.xts)
                            Open     High      Low    Close
2012-03-20 08:49:02.820 50.03978 50.11778 49.95041 50.11778
2012-03-20 08:49:02.920 50.23050 50.42188 50.23050 50.39767
2012-03-20 08:49:03.020 50.42096 50.42096 50.26414 50.33236
2012-03-20 08:49:03.120 50.37347 50.37347 50.22103 50.33459
2012-03-20 08:49:03.220 50.24433 50.24433 50.11121 50.18112
2012-03-20 08:49:03.320 50.13211 50.21561 49.99185 49.99185

1 Ответ

7 голосов
/ 20 марта 2012

Это работает с пакетом zoo , поэтому я подозреваю, что оно также работает с xts , так как последний опирается на первый.

> ## create some times with milliseconds
> times <- Sys.time() + seq(0, by = 0.1, length = 10)
> times
 [1] "2012-03-19 22:10:57.763 GMT" "2012-03-19 22:10:57.863 GMT"
 [3] "2012-03-19 22:10:57.963 GMT" "2012-03-19 22:10:58.063 GMT"
 [5] "2012-03-19 22:10:58.163 GMT" "2012-03-19 22:10:58.263 GMT"
 [7] "2012-03-19 22:10:58.363 GMT" "2012-03-19 22:10:58.463 GMT"
 [9] "2012-03-19 22:10:58.563 GMT" "2012-03-19 22:10:58.663 GMT"
> ZOO <- zoo(1:10, order = times)
> index(ZOO)
 [1] "2012-03-19 22:10:57.763 GMT" "2012-03-19 22:10:57.863 GMT"
 [3] "2012-03-19 22:10:57.963 GMT" "2012-03-19 22:10:58.063 GMT"
 [5] "2012-03-19 22:10:58.163 GMT" "2012-03-19 22:10:58.263 GMT"
 [7] "2012-03-19 22:10:58.363 GMT" "2012-03-19 22:10:58.463 GMT"
 [9] "2012-03-19 22:10:58.563 GMT" "2012-03-19 22:10:58.663 GMT"

Трюк, чтобы увидетьв миллисекундах можно изменить параметр digits.secs с помощью options().Вышеуказанное выполняется с помощью:

> getOption("digits.secs")
[1] 3

, который устанавливается с помощью

> opts <- options(digits.secs = 3)

. Вы можете сбросить это значение по умолчанию (0), выполнив options(opts).По умолчанию R не печатает подсекундную информацию, потому что digits.secs по умолчанию 0.Однако данные записываются с точностью до секунды, даже если они не распечатаны.

Если это не то, что вы имели в виду, можете ли вы объяснить, что вы сделали, что не работало?

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