2017-10-16 74 views
-3

我需要减去时间,即T2-T1,但它给我一个错误,如下所述;在时间差R

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

然而,T1和T2是在

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

形式任何人都可以请帮我在这?谢谢 !

+3

转换为正确的日期时间格式。请参阅'?as.POSIXct' – Sotos

+2

请检查[mcve] –

回答

-2

查一查dplyrdifftime和dpylr的lead

你可能会使用这样的:

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

如果你想找到两个特定日期之间的时间,你可以使用:

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

感谢您的回答,但是这是什么? df%>%mutate – sara

+0

其管道运营商。这里更多解释http://uc-r.github.io/pipe – DataTx

+0

谢谢!我只是想从“2017-10-12T12:51:39.616”中减去“2017-10-12T12:51:29.616”;这就是为什么我提出这个问题。 – sara