Вот странный артефакт. Я преобразование десятков тысяч векторов символов в класс даты и времени, например, так:as.POSIXct/as.POSIXlt не нравится .61 миллисекунды
alles$DateTime=as.POSIXct(alles$roughdate, tz="EST",format="%Y%m%d.%H%M%S.%OS")
Довольно прямо вперед. Строка символов (alles$roughdate
) представлена в формате YYYYMMDD.HHMMSS.ss
, а .ss
- миллисекунды. Вышеприведенный код работает, как и следовало ожидать. Однако, если миллисекунды равны .61, он возвращает NA вместо значения даты.
Это не так уж плохо, но, имея дело с десятками тысяч ячеек, несколько сотен всегда возвращаются как NA. Миллисекунды всегда .61, не имеет значения, какая остальная часть даты. Я делаю эти даты.
Я попытался изолировать эти файлы, а затем снова объединить два кадра данных, но это не работает. Все мои даты - внезапно.
Любые мысли?
Пример
vec <- c("20150101.010101.60", "20150101.010101.61", "20150101.010101.62")
as.POSIXlt(vec, tz="EST", format="%Y%m%d.%H%M%S.%OS")
#[1] "2015-01-01 01:01:60 EST" NA "2015-01-01 01:01:01 EST"
это выглядит как ваша строка формата просто неправильно (как указано в @ nrussell отвечают), а просто из любознательности я хотел бы знать, что на самом деле продолжая запускать это конкретное неопределенное поведение. Я слишком ленив, чтобы проследить через лежащий в основе C-код, хотя ... –