R - Числовое (целое) в преобразование Даты

У меня есть date.frame и столбец с

values(20180213190133, 20180213190136, 20180213190173 , 20180213190193 , 20180213190213, 20180213190233, 20180213190333, 20180213190533, 20180213190733, 20180213190833, 20180213190833, 20180213190833, 201802131901833, 20180213191133, 20180213192133, 20180213194133, 20180213199133, 20180213199133, 20180213199133, 20180213199133, 20180213190136.... 1200 entries)

Я хочу преобразовать этот столбец, который имеет тип int в Date,

Я пытался с помощью:as.Date() а также as.POSIXct(), Оба не работают. Я получаю значение N/A.

Пожалуйста, дайте мне, как я могу преобразовать это поле из int в Date.

Спасибо

1 ответ

Решение

Попробуй это:

Входные данные

values<-c(20180213190133, 20180213190136, 20180213190173)

values_date<-as.Date(substr(as.character(values),start = 1,stop=8), format = "%Y%m%d")
> values_date
[1] "2018-02-13" "2018-02-13" "2018-02-13"
> class(values_date)
[1] "Date"

Если вы хотите сохранить также час / минуту / секунду, вы можете попробовать это:

values_date<-as.POSIXlt(as.character(values), format = "%Y%m%d%H%M%S")

После этого класс будет "POSIXlt" "POSIXt" и не Date но есть некоторая странная информация в ваших входных данных

В третьем числе последние две цифры "73", это число неверно в течение нескольких секунд, и вы будете иметь NA на выходе.

values_date
[1] "2018-02-13 19:01:33 CET" "2018-02-13 19:01:36 CET" NA 
Другие вопросы по тегам