Question

J'ai ce qui peut être une question très simple. Je veux traiter une colonne d'objets POSIXct d'une trame de données et de générer un vecteur de chaînes de datetime. J'ai essayé d'utiliser l'appel suivant sapply

dt <- sapply(df$datetime, function(x) format(x,"%Y-%m-%dT%H:%M:%S"))

mais en vain. Je continue à obtenir l'erreur suivante:

> Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L,  :
invalid 'trim' argument

Quand j'applique cette fonction à un seul objet POSIXct de la colonne, je n'ai aucun problème. Donc, je suis perplexe au moment de ce que le problème est. Est-ce que je dois faire quelque chose de spécial avec des objets POSIXct?

Était-ce utile?

La solution

format() prendra un argument vectoriel, donc format(df$datetime,"%Y-%m-%dT%H:%M:%S") devrait faire ce que vous avez besoin.

Lorsque vous utilisez sapply, vos objets sont contraints à numérique, et ainsi la méthode de format incorrect est invoqué. Vous pouvez les forcer à revenir à POSIXct en utilisant sapply(df$datetime, function(x) format(as.POSIXct(x, origin="1970-01-01"),"%Y-%m-%dT%H:%M:%S")), mais à moins que vous ayez une raison particulière d'utiliser apply, il suffit d'utiliser la méthode ci-dessus

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top