Как преобразовать числовое время в дату, формат времени в R - PullRequest
0 голосов
/ 15 апреля 2019

Попытка построить xts для моих данных.С датой все в порядке, но я не знаю, как преобразовать столбец «время» в формат времени.Время сохраняется в числовом виде, данные выглядят следующим образом:

      date time  price
1 19900102  930 353.40
2 19900102  931 353.25
3 19900102  932 353.02
4 19900102  933 352.97
5 19900102  934 352.81
6 19900102  935 352.74

Я попробовал следующий код, но он не работает.

sp500.xts <-  as.xts(sp500[,3],order.by=as.POSIXct(strptime(paste(as.character(sp500[,1]),as.character(sp500[,2])),"%Y%m%d %H:%M")))

Спасибо всем, кто помогает.

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Предполагая 930 = 09:30, можете попробовать это:

timec - это набить, чтобы получить полный гм;dtc - получить полное время даты, затем использовать ymd_hm для чтения в формате даты и времени.

library(tidyverse)

library(lubridate)


test %>% 
  mutate(timec = str_pad(time, 4, side = 'left', pad = '0'),
         dtc = str_c(date, timec),
         dt = ymd_hm(dtc))

> test %>% 
+   mutate(timec = str_pad(time, 4, side = 'left', pad = '0'),
+          dtc = str_c(date, timec),
+          dt = ymd_hm(dtc))
      date time  price timec          dtc                  dt
1 19900102  930 353.40  0930 199001020930 1990-01-02 09:30:00
2 19900102  931 353.25  0931 199001020931 1990-01-02 09:31:00
3 19900102  932 353.02  0932 199001020932 1990-01-02 09:32:00
4 19900102  933 352.97  0933 199001020933 1990-01-02 09:33:00
5 19900102  934 352.81  0934 199001020934 1990-01-02 09:34:00
6 19900102  935 352.74  0935 199001020935 1990-01-02 09:35:00
0 голосов
/ 15 апреля 2019

Большой вентилятор parse_date_time от lubridate и timetk пакет:

library(tidyverse)
library(lubridate)
library(timetk)

test %>%
  mutate(date = parse_date_time(paste(date, str_pad(time, 4, side = "left", pad = "0")), "YmdHM")) %>%
  select(-time) %>%
  tk_xts(silent = T)

                     price
1990-01-02 09:30:00 353.40
1990-01-02 09:31:00 353.25
1990-01-02 09:32:00 353.02
1990-01-02 09:33:00 352.97
1990-01-02 09:34:00 352.81
1990-01-02 09:35:00 352.74
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...