AM/PM chaîne n'est pas correctement reconnu par strptime
J'ai rencontré quelque chose d'inattendu, tout en travaillant avec la fonction strptime(). Le format de la date, j'ai se compose de "1/22/2013 11:00:00 P. M" . Le format que je suis en utilisant pour cela est "%m/%d/%Y %h:%M:%S %p".
Le code est comme suit.
strptime("1/22/2013 11:00:00 p.m",format="%m/%d/%Y %I:%M:%S %p")
[1] NA
mais si j'utilise
strptime("1/22/2013 11:00:00 pm",format="%m/%d/%Y %I:%M:%S %p")
[1] "2013-01-22 23:00:00"
- Je obtenir le résultat voulu.
De sorte que cette fonctionnalité manque dans strptime pour détecter p.m et ses variantes telles que h, etc à la place de PM ou pm. Est-ce un bug dans la R ?
La version de R-je suis à l'aide de R. 14.2 sur windows 7 32 bits
S'il vous plaît être très prudents à propos de l'étiquetage des comportements comme des "bugs" dans n'importe quelle langue. Il est toujours tentant de blâmer logiciel, en particulier certaines paquet nous ne sommes pas familiers avec, mais en fait, ces sortes de problèmes sont pratiquement jamais de bugs. (Sauf en cas de SAP, bien sûr 🙂 )
OriginalL'auteur pmehrotra | 2013-01-22
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas un bug, mais
strptime
attend que les informations d'une manière standardisée.%p
est:À vous de locale est
AM/am
etPM/pm
. R est un langage formel, et vous avez besoin de s'en tenir aux règles qu'elle impose. Si vous définissez un facteur avec des niveauxflavor
,color
,taste
, vous ne pouvez pas vous attendre à être en mesure d'utilisercolour
etflavour
que des manières de parler de ce facteur. Même si cela semble évident pour vous que ceux-ci représentent le même concept, R est un langage formel, sans respect des droits de la flexibilité.gsub("[.]", "\\1", "1/22/2013 11:00:00 p.m")
OriginalL'auteur Paul Hiemstra
Le résultat:
11 heures (le résultat) est de 11 heures du matin, mais 11 est 11 la nuit. Si votre résultat semblent être mauvais.
OriginalL'auteur David Wang