J'ai une colonne dans R sur mon ensemble de données avec des valeurs qui ont été converties en ce que je crois être une fraction décimale temporelle basée sur jours. J'utilise ce site comme une référence: http://www.calculatorsoup.com/calculators/time/decimal-to-time-calculator.phpConversion d'une décimale/fraction temporelle représentant des jours à son heure réelle dans R?
qui conversion 0.3408565 jours correspond au temps de 8:10:50 en procédant comme suit:
0.3408565 * 24 hours/day = 8.180555544 = 8 hours
0.180555544 * 60 minutes = 10.83333264 = 10 minutes
0.83333264 * 60 seconds = 49.9999584 = 50 seconds
Comme vous pouvez le voir est extrayait le reste et faire multiplication supplémentaire, mais je ne suis pas sûr de la façon dont je pourrais mettre en œuvre le processus dans R. Je veux convertir toutes les valeurs dans ma colonne en utilisant cela afin que je puisse remplacer 0.3408565, 0.3864468, 0.4400231 etc. : 10: 50, 09:16:29, 10:33:38 respectivement. Cela semble être aussi le cas dans Excel.
J'ai essayé d'écrire ma propre fonction qui en anglais fait:
convertTime <- function(x)
{
x * 60 = Hour
x2 * 24 = Min
x3 * 24 = Sec
hourChar <- as.character(Hour)
minChar <- as.character(Min)
secChar <- as.character(Sec)
paste(hourChar, minChar, secChar, sep=":")
}
x étant 0,3408565, mais bien sûr cela n'extrait pas le reste. Je pourrais être sérieusement trop compliqué, mais je veux boucler toutes les valeurs dans la colonne en utilisant chaque valeur comme entrée pour convertir. Enfin, j'ai regardé des paquets tels que 'lubridate' mais je ne trouve rien qui soit pertinent à mon problème.
J'ai également regardé ici pour ma situation spécifique mais n'ai pu trouver quelque chose de vraiment pertinent à mon problème. Y a-t-il un paquet ou une solution qui pourrait m'aider?
EDIT: Je veux dire que les deux réponses fonctionnent parfaitement pour quelqu'un d'autre ayant ce genre de problème, merci à vous deux!
Je viens d'essayer cette solution et cela fonctionne parfaitement pour ma situation, merci beaucoup! Par hasard, seriez-vous conscient de la façon dont une date peut également être convertie sans poser une autre question pour elle? Encore une fois, j'ai une date (41641) que je peux convertir au 02/01/2014, ce qui est 41641 le nombre de jours depuis le 01/01/1900. – IAmZingy
'as.Date (41641, origin =" 1900-01-01 ")' –
Ceci est parfait merci beaucoup pour votre aide, je dois juste le convertir en temps britannique que je vais trouver comment faire! Encore une fois merci beaucoup! – IAmZingy