Отладка всегда трудна, поэтому общий совет: постарайтесь уменьшить ее как можно больше.
Глядя на это, я думаю, что при разборе символа возникает проблема.Я не уверен насчет lubridate и ymd_hms, но вызовы as.POSIXct и strptime должны работать.
Вы можете проверить, напечатав trial2 $ date и trial2 $ rolli.Если дата выглядит хорошо, но rolli состоит из всех NA, то в этом проблема.
Вероятно, даты, представленные в виде символов, не в правильном формате, эти функции могут быть очень разборчивы.
В порядкечтобы точно знать, что идет не так, мне нужно увидеть пример Y.csv, но вы можете проверить, правильно ли вы ввели все: пробелы или вы переключили "\" и "/"?Кроме того, я обычно работаю с 24-часовой нотацией, поэтому может случиться так, что strptime требователен к спецификации, являющейся «am», «AM», «am» или чем-то другим.
РЕДАКТИРОВАТЬ: Я имеювидел формат, который вы пытаетесь предоставить, который имеет десятичные дроби в секундах, что означает, что% S не справляется с задачей.
Вместо этого вы хотите% OS (это в справке для? strptime, но это довольноскрытый).Кроме того, я не могу видеть это ясно на изображении, но в вашем исходном коде есть 2 пробела между "% Y" и "% I".Также есть 2 в вашем вводе?
В любом случае:
strptime('11/27/2018 11:44:04.479 AM', format='%m/%d/%Y %I:%M:%OS %p')
# Works with me
trial2$rolli<-strptime(trial2$date, "%m/%d/%Y %I:%M:%OS %p")
# Should solve your problem.
Кроме того, когда печать trial2 $ rolli, дробная часть не отображается, но она хранится .Вы можете показать это с помощью as.numeric(trial2$rolli) %% 1
, хотя могут быть небольшие различия в округлении.
2-е РЕДАКТИРОВАНИЕ: Чтобы исправить проблемы, когда у вас есть время, например, 0:00 PM на входе (что технически неправильно, но выможет не контролировать ваш ввод), вы можете использовать:
trial2$date <- sub('0+(:..:..)', '12\1', trial2$date)
Он заменяет все вхождения формы 0 : restoftime или 00 : restoftime с 12: restoftime
Только будьте осторожны с тем, что ваш источник на самом деле имеет в виду, например, 0: 00: 00.000 утра: это полночь или полдень?Я не знаю, как R-функции справляются с этим вообще (или даже если это гарантированно всегда будет одним и тем же), и я не собираюсь опускать руки на этот вопрос.Если вы посмотрите в интернете, то есть много людей, которые имеют очень сильные мнения о том, что AM / PM означает в этих обстоятельствах во всех вариациях.