如何将时间存储为变量并从R中减去当前时间?

时间:2018-02-26 05:02:38

标签: python r logging time system

我想在R中记录时间,就像在Python 3中一样,但我不知道从哪里开始。在Python我会这样做。我如何在R中做同样的事情?

>>> import time
>>> start_time = time.time()
>>> time.time() - start_time
6.0202391147613525

2 个答案:

答案 0 :(得分:1)

Sys.time就是您所需要的。

current_time <- Sys.time()
Sys.time() - current_time

#Time difference of 2.900852 secs

但是,这有一类difftime

class(Sys.time() - current_time)
#[1] "difftime"

如果您想将其作为操作号码,可以使用as.numeric

as.numeric(Sys.time() - current_time)
#[1] 2.900852

这里的单位并不总是恒定的,你可能会面临处理它的问题。例如,当我现在做

Sys.time() - current_time

它给了我

#Time difference of 12.12814 mins

这里要注意的是,最初的单位是秒,现在是几分钟。因此,当您使用它们进行某些计算时,这是不一致的并且可能很麻烦。

为了克服这个问题,正如@ r2evans在评论中提到的那样,我们可以通过

来设置单位
my_diff = Sys.time() - current_time
units(my_diff) <- "secs"

my_diff
#Time difference of 592.8649 secs

所以无论持续时间如何,这都会以秒为单位返回差异。

答案 1 :(得分:0)

像这样使用proc.time()

start_time <- proc.time()
Sys.sleep(1)
proc.time() - start_time

,并提供:

user  system elapsed 
0.00    0.03    1.04 

计时表达式:

system.time(Sys.sleep(1))

,并提供:

user  system elapsed 
   0       0       1 

另请参阅microbenchmark,rbenchmark和tictoc软件包。