Comment faire pour convertir dans les deux sens entre l'année, le mois, le jour et la date à R?

Comment faire pour convertir entre année,le mois,le jour et les dates dans la R?

Je sais on peut le faire via les chaînes, mais je préfère éviter de convertir en chaînes, en partie parce que peut-être il y a un gain de performance?, et en partie parce que je m'inquiète à propos de la régionalisation des questions, où certains de la monde utilise "année-mois-jour" et certains usages "de l'année-jour-mois".

Il ressemble ISODate fournit à la direction de l'année,le mois,le jour -> DateTime , bien qu'il ne convertit le nombre en une chaîne de caractères, donc si il y a un chemin qui ne passe pas par l'intermédiaire d'une chaîne puis je préfère.

Je ne pouvais pas trouver quelque chose qui va à l'inverse, à partir de datetimes de valeurs numériques? Je préférerais ne pas avoir à utiliser strsplit ou des choses comme ça.

Edit: juste pour être clair, ce que j'ai est un bloc de données qui ressemble à:

year month day hour somevalue
2004 1     1   1   1515353
2004 1     1   2   3513535
....

Je veux être en mesure de convertir librement à ce format:

time(hour units) somevalue
1             1515353
2             3513535
....

... et aussi être en mesure de revenir à nouveau.

Edit: pour effacer une certaine confusion sur ce que "time" (heure d'unités) signifie, en fin de compte ce que j'ai fait, et en utilisant les informations de Comment trouver la différence entre deux dates en heures de R?:

transmet direction:

lh$time <- as.numeric( difftime(ISOdate(lh$year,lh$month,lh$day,lh$hour), ISOdate(2004,1,1,0), units="hours"))
lh$year <- NULL; lh$month <- NULL; lh$day <- NULL; lh$hour <- NULL

en arrière direction:

... eh bien, je n'ai pas fait en arrière encore, mais j'imagine quelque chose comme:

  • créer difftime objet de lh$l'heure (en quelque sorte...)
  • ajouter ISOdate(2004,1,1,0) à difftime objet
  • utiliser l'un de la solution ci-dessous pour obtenir l'année,le mois,le jour, l'heure de retour

Je suppose que, dans l'avenir, j'ai pu poser le problème exact, je suis en train de résoudre, mais j'ai essayé de factoriser mon problème spécifique générique réutilisable questions, mais peut-être que c'était une erreur?

source d'informationauteur Hugh Perkins