2017-10-16 3 views
-3

J'ai besoin de soustraire le temps en T2-T1 mais en me donnant une erreur comme mentionné ci-dessous;Prendre la différence de temps dans R

> deltaT <- tim[i + 1] - tim[i] 
    Error in tim[i + 1] - tim[i] : non-numeric argument to binary operator 

considérant que, T1 et T2 sont sous la forme de

 "2017-10-12T12:51:29.616" 

Quelqu'un peut-il me aider s'il vous plaît dans ce domaine? Je vous remercie !

+3

Convertissez au format datetime approprié. voir '? as.POSIXct' – Sotos

+2

Veuillez réviser [mcve] –

Répondre

-2

Consulter dplyr, difftime et lead de dpylr:

Vous pouvez éventuellement utiliser quelque chose comme ceci:

df%>%mutate(timeDiff = difftime(lead(time), time, units = "days")) 

Si vous voulez trouver le temps entre deux dates que vous utilisez:

date1 <- as.POSIXct("2017-10-12T12:51:29.616", format = "%Y-%m-%dT%H:%M:%OS") 
date2 <- as.POSIXct("2017-10-12T12:51:39.616", format = "%Y-%m-%dT%H:%M:%OS") 

timeBetween = difftime(date1,date2, units = "secs") 
print(timeBetween) 
Time difference of -10 secs 
+0

Merci pour votre réponse, mais c'est quoi? df%>% mute – sara

+0

son opérateur de tuyau. Plus d'explications ici http://uc-r.github.io/pipe – DataTx

+0

Merci! Je veux juste soustraire "2017-10-12T12: 51: 29.616" de "2017-10-12T12: 51: 39.616"; C'est pourquoi je pose la question. – sara