Использование strptime для текстовых строк с "AM или PM" работал нормально в R версии 3.0.2г strptime (R версия 3.2.2)
> strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] "2015-08-25 18:38:41"
Я недавно повышен до R 3.2.2 и теперь найти это commend возвращает NA:
>strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] NA
Кажется, что-то связано с «PM». Если удалить «PM» и используйте команду следующим образом, она работает (но, конечно, он интерпретирует как я не PM):
>strptime("8/25/2015 6:38:41", "%m/%d/%Y %H:%M:%S")
[1] "2015-08-25 06:38:41 NZST"
Что я здесь отсутствует?
Update:
Спасибо всем за ваши комментарии:
Я переустановил R 3.2.2, но получил ту же ошибку
> strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] NA
и вот информация сессии в соответствии с просьбой
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_New Zealand.1252 LC_CTYPE=English_New Zealand.1252
[3] LC_MONETARY=English_New Zealand.1252 LC_NUMERIC=C
[5] LC_TIME=English_New Zealand.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
Затем я изменил локаль, как предложено в соответствующем сообщении
> Sys.setlocale(category="LC_TIME","C")
[1] "C"
> strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] "2015-08-25 18:38:41 NZST"
И это сработало - но это значит, что я должен менять локаль каждый раз, когда хочу преобразовать текстовое время в класс POSIXct?
strptime использует локаль системы - что это выход 'Sys.getlocale (категория = "LC_ALL")'? – jeremycg
обновлен от – rawr
От версии 3.0.2 –