【发布时间】:2012-12-19 10:14:24
【问题描述】:
我想制作一个基本的分析工具,它可以收集时间戳并生成带有注释的运行时间。唯一的问题是我无法弄清楚如何在不使用全局变量的情况下做到这一点。实现我想要实现的功能的“正确”方法是什么?如果 R 已经内置了这个功能,那就太棒了,但我在这里真正想弄清楚的是如何避免使用全局变量并编写更健壮的代码。
timeStamps = c()
runTimes = list()
appendRunTimes <- function(note) {
if(length(timeStamps) < 1) {
timeStamps <<- Sys.time()
}
else {
timeStamps <<- c(timeStamps, Sys.time())
diff <- timeStamps[length(timeStamps) ] - timeStamps[length(timeStamps) - 1]
runTimes <<- c(runTimes, format(diff))
names(runTimes)[length(runTimes)] <<- note
}
}
appendRunTimes('start')
Sys.sleep(4)
appendRunTimes('test')
【问题讨论】:
-
我会查看
system.time的代码以获取想法.. 或使用它!您还可以查看一些基准测试包的代码(例如microbenchmark)。 -
除其他建议外,请参阅“R 简介”(cran.r-project.org/doc/manuals/R-intro.pdf)第 10.7 节,第 50 页(2.15.2 修订版)。
标签: r global-variables