推导R中两次之间的差异
Derive difference between two times in R
我正在从一个API请求的输出中提取一个时间变量,输出格式如下。
> a
[1] "2019-09-06T09:03:14.938Z"
第一个objective是推导与Sys.time()
的区别
> b<- Sys.time()
> b
[1] "2019-09-06 08:57:08 UTC"
我在 运行 基本 c = a-b
方面遇到问题
> c<-a-b
Error in `-.POSIXt`(a, b) : can only subtract from "POSIXt" objects
尝试将 a
转换为 POSIXT
对象时,出现以下错误:
> c<-as.POSIXct.Date(a)
Error in unclass(x) * 86400 : non-numeric argument to binary operator
第二个 objective 是让代码等待,直到时差为正或零。也许使用 sys.sleep
?
您需要在转换为 POSIXct
对象时传递正确的 format
a <- as.POSIXct("2019-09-06T09:03:14.938Z", format = "%Y-%m-%dT%T")
然后
b - a
你也可以 difftime
有 units
参数并且可以接受 "secs", "mins", "hours","days", "weeks"
difftime(b, a, units = "mins")
问题的第二部分不是很清楚但是,我们可以写一个while
循环使代码"wait"直到时差为正或0。
while(a > Sys.time()) { }
使用lubridate
将字符串转换为POSIXct
对象,然后你可以从另一个中减去
library(lubridate)
as_datetime("2019-09-06 08:57:08 UTC") - as_datetime("2019-09-06T09:03:14.938Z")
Time difference of -6.115633 mins
回答你的第二个问题(关于在 API 个请求之间等待)Sys.sleep()
非常适合这个
Sys.sleep(5) # sleeps 5 seconds
我正在从一个API请求的输出中提取一个时间变量,输出格式如下。
> a
[1] "2019-09-06T09:03:14.938Z"
第一个objective是推导与Sys.time()
的区别
> b<- Sys.time()
> b
[1] "2019-09-06 08:57:08 UTC"
我在 运行 基本 c = a-b
> c<-a-b
Error in `-.POSIXt`(a, b) : can only subtract from "POSIXt" objects
尝试将 a
转换为 POSIXT
对象时,出现以下错误:
> c<-as.POSIXct.Date(a)
Error in unclass(x) * 86400 : non-numeric argument to binary operator
第二个 objective 是让代码等待,直到时差为正或零。也许使用 sys.sleep
?
您需要在转换为 POSIXct
对象时传递正确的 format
a <- as.POSIXct("2019-09-06T09:03:14.938Z", format = "%Y-%m-%dT%T")
然后
b - a
你也可以 difftime
有 units
参数并且可以接受 "secs", "mins", "hours","days", "weeks"
difftime(b, a, units = "mins")
问题的第二部分不是很清楚但是,我们可以写一个while
循环使代码"wait"直到时差为正或0。
while(a > Sys.time()) { }
使用lubridate
将字符串转换为POSIXct
对象,然后你可以从另一个中减去
library(lubridate)
as_datetime("2019-09-06 08:57:08 UTC") - as_datetime("2019-09-06T09:03:14.938Z")
Time difference of -6.115633 mins
回答你的第二个问题(关于在 API 个请求之间等待)Sys.sleep()
非常适合这个
Sys.sleep(5) # sleeps 5 seconds