Страница 1 из 1

Перевод числовых значений в дату и время в R

Добавлено: 03 июл 2020, 20:46
oda412
Добрый вечер!
Есть вектор dt с числовыми данными:

Код: Выделить всё

43212.21 43212.21 43212.22 43212.22 43212.23 43212.24 43212.24 43212.25 43212.25 43212.26
На самом деле это дата и время с секундами в числовом формате, скопированном из Excel.
Как из этих чисел сделать нормальные дату и время?
Пробовала функцию:

Код: Выделить всё

as.POSIXct(x= dt,origin = "1899-12-30", tz     = "GMT")
Выдает результат:

Код: Выделить всё

[1] "1899-12-30 12:00:13 GMT" "1899-12-30 12:00:13 GMT" "1899-12-30 12:00:13 GMT" "1899-12-30 12:00:13 GMT"
 [5] "1899-12-30 12:00:13 GMT" "1899-12-30 12:00:13 GMT" "1899-12-30 12:00:13 GMT" "1899-12-30 12:00:13 GMT"
 [9] "1899-12-30 12:00:13 GMT" "1899-12-30 12:00:13 GMT"
Помогите, пожалуйста

Re: Перевод числовых значений в дату и время в R

Добавлено: 03 июл 2020, 21:54
Константин Силкин
Добрый день! В Excel дата-время хранится в таком стиле, что целая часть — это число суток от 0 января 1900 года, а дробная часть — это доля суток. Т.е. секунд в явном виде в ваших данных нет совсем.
Не знаю, поищите, готовые функции перевода в формат UNIX, но уверен, что и сами сообразите, дела не хитрое, если знать, что время UNIX — это число секунд с 1 января 1970 года.
Так что функцию POSIX, которую мы с вами разбирали в прошлый раз, в лоб использовать нельзя. Она же думает, что в ваших данных секунды

Re: Перевод числовых значений в дату и время в R

Добавлено: 03 июл 2020, 22:51
gamm
из Ёкселя лучше экспортировать дату/время в текстовом виде, а потом спокойно парсить в POSIX (через форматирование)

Re: Перевод числовых значений в дату и время в R

Добавлено: 03 июл 2020, 22:55
nickleb

Код: Выделить всё

dt <- c(43212.21, 43212.21, 43212.22, 43212.22, 43212.23, 43212.24, 43212.24, 43212.25, 43212.25, 43212.26)

DT <- janitor::convert_to_datetime(dt, 
                                   character_fun=lubridate::dmy_hms, 
                                   tz="UTC")
str(DT)

POSIXct[1:10], format: "2018-04-22 05:02:24" "2018-04-22 05:02:24" "2018-04-22 05:16:48" "2018-04-22 05:16:48" ...

Re: Перевод числовых значений в дату и время в R

Добавлено: 04 июл 2020, 06:17
gamm
Есть подозрение, что числа округлены до 2 знаков. Так что лучше экспортировать текстовые, там хоть видно, с чем имеем дело ...

Re: Перевод числовых значений в дату и время в R

Добавлено: 04 июл 2020, 09:17
nplatonov
А если напрямую?

Код: Выделить всё

readxl::read_excel()

Re: Перевод числовых значений в дату и время в R

Добавлено: 04 июл 2020, 10:12
oda412
Всем большое спасибо за помощь! Здесь замечательный форум
nickleb, использовала ваш вариант - сработало, спасибо огромное!