Проблема с форматом в любое время пакет

library("anytime")

Это хорошо работает:

anytime("08/24/2014 01:28:00")
anytime("2014/08/24 01:28:00")

[1] "2014-08-24 00:28:00 NZST"

Это не:

anytime("24/08/2014 01:28:00")
anytime("2014/24/08 01:28:00")

[1] NA

В чем причина этого и какие будут варианты (при использовании ТОЛЬКО пакета в любое время)?

1 ответ

Решение

Мы можем добавить форматы с addFormats в anytime если эти форматы не находятся в списке форматов по умолчанию с помощью

getFormats()
#[1] "%Y-%m-%d %H:%M:%S%f"    "%Y/%m/%d %H:%M:%S%f"    "%Y%m%d %H%M%S%f"       
#[4] "%Y%m%d %H:%M:%S%f"      "%m/%d/%Y %H:%M:%S%f"    "%m-%d-%Y %H:%M:%S%f"   
#[7] "%Y-%b-%d %H:%M:%S%f"    "%Y/%b/%d %H:%M:%S%f"    "%Y%b%d %H%M%S%F"       
#[10] "%Y%b%d %H:%M:%S%F"      "%b/%d/%Y %H:%M:%S%f"    "%b-%d-%Y %H:%M:%S%f"   
#[13] "%d.%b.%Y %H:%M:%S%f"    "%Y-%B-%d %H:%M:%S%f"    "%Y/%B/%d %H:%M:%S%f"   
#[16] "%Y%B%d %H%M%S%f"        "%Y%B%d %H:%M:%S%f"      "%B/%d/%Y %H:%M:%S%f"   
#[19] "%B-%d-%Y %H:%M:%S%f"    "%d.%B.%Y %H:%M:%S%f"    "%a %b %d %H:%M:%S%F %Y"
#[22] "%Y-%m-%d"               "%Y%m%d"                 "%m/%d/%Y"              
#[25] "%m-%d-%Y"               "%Y-%b-%d"               "%Y%b%d"                
#[28] "%b/%d/%Y"               "%b-%d-%Y"               "%Y-%B-%d"              
#[31] "%Y%B%d"                 "%B/%d/%Y"               "%B-%d-%Y"   

Если мы проверим format что дает NA, это не в getFormats список

c("%d/%m/%Y %H:%M:%S", "%Y/%d/%m %H:%M:%S") %in% getFormats()
#[1] FALSE FALSE

Итак, мы можем добавить форматы с addFormats и применить anytime

anytime::addFormats(c("%d/%m/%Y %H:%M:%S", "%Y/%d/%m %H:%M:%S")) 
anytime("24/08/2014 01:28:00")
#[1] "2014-08-24 01:28:00 IST"
anytime("2014/24/08 01:28:00")
#[1] "2014-08-24 01:28:00 IST"

Обновить

В последней версии anytimeЕсть 41 формат getFormats()

length(getFormats())
#[1] 41

Но формат, указанный в сообщении ФП, до сих пор не включен и должен соответствовать addFormats маршрут

Другие вопросы по тегам