Преобразование даты в R для кластеризации - PullRequest
0 голосов
/ 10 мая 2018

У меня есть список последующих дат, приведенных в следующей форме: год-месяц-день. Чтобы иметь возможность кластеризовать мои данные на основе этих дат, я хочу преобразовать даты в часы. Это так, что первый день в строке равен 0, второй день 24, третий день 48 и т. Д.

По какому коду это возможно?

1 Ответ

0 голосов
/ 10 мая 2018
dates<-c('2016-09-01', '2016-09-01', '2016-09-01', '2016-09-02', '2016-09-02', '2016-09-03', '2016-09-03', '2016-09-04', '2016-09-05', '2016-09-05', '2016-09-05', '2016-09-05', '2016-09-06', '2016-09-07')

Учитывая приведенные выше даты в виде символьных строк, преобразуйте их в Date:

dates<-as.Date(dates,format = '%Y-%m-%d')
dates
# [1] "2016-09-01" "2016-09-01" "2016-09-01" "2016-09-02" "2016-09-02" "2016-09-03" "2016-09-03" "2016-09-04" "2016-09-05"
#[10] "2016-09-05" "2016-09-05" "2016-09-05" "2016-09-06" "2016-09-07"

Затем просто вычтите из минимальной / первой даты:

hrs<-as.numeric(dates-min(dates))*24
hrs
# [1]   0   0   0  24  24  48  48  72  96  96  96  96 120 144

Или первое свидание:

hrs<-as.numeric(dates-dates[1])*24
hrs
# [1]   0   0   0  24  24  48  48  72  96  96  96  96 120 144
...