在R

时间:2016-09-01 12:21:59

标签: r time

R中的测量功能执行时间很简单,但会污染代码。

t0 <- Sys.time()
my_function()
t1 <- Sys.time()
t1-t0

R中是否有一些包或设置记录执行时间(持续时间)和完成时间,并在功能输出后将其打印到屏幕上?

在stata中,这可以通过以下设置来完成:

set rmsg on

之后如果运行一段代码,则使用以下4个命令:

clear
set obs 3
gen x=1

输出窗口将显示:

. clear
r; t=0.00 9:10:28

. set obs 3
number of observations (_N) was 0, now 3
r; t=0.00 9:10:28

. gen x=1
r; t=0.00 9:10:28

. 
end of do-file

r; t=0.00 9:10:28

上面我们有执行和完成时间:

  • 每个命令命令。这遵循命令自己的输出(记住cleargen没有屏幕输出)。
  • 洞命令块。这通过添加end of do-file和之后的时间信息来表示。

在处理大型数据集时,我发现这非常有用。

有没有办法在R中这样做?

如果没有,创建一个包来实现这个功能会不会太复杂?

1 个答案:

答案 0 :(得分:0)

查看microbenchmark包。 E.g。

microbenchmark::microbenchmark(my_fun(), times = 100L, unit = "ms")
summary(microbenchmark::microbenchmark(my_fun(), times = 100L, unit = "ms"))$uq

使用后一种选项,您可以访问条目以进行进一步的测试。

运行示例:

microbenchmark::microbenchmark(factorial(100), times = 100L, unit = "us")