我拥有一个更大的数据集,其中包含超过一百万个条目。如果我正在运行脚本,有时需要一段时间才能得到输出。有时,即使我让它运行了几个小时,似乎也没有任何输出。有没有办法跟踪计算的进度(或者只是看看它是否卡住了)?
答案 0 :(得分:2)
1。从小开始
编写分析脚本,然后使用少量数据对其进行测试。逐步扩大规模,看看运行时间如何增加。 microbenchmark
软件包在这方面很棒。在下面的示例中,我比较了使用三个不同大小的数据块运行同一功能所花费的时间。
library(microbenchmark)
long_running_function <- function(x) {
for(i in 1:nrow(x)) {
Sys.sleep(0.01)
}
}
microbenchmark(long_running_function(mtcars[1:5,]),
long_running_function(mtcars[1:10,]),
long_running_function(mtcars[1:15,]))
2。寻找提供进度条的功能
我不确定您要执行哪种分析,但是某些软件包已经具有此功能。例如,与等效的ranger
函数相比,RandomForest
为您提供的更新更多。
3。编写自己的进度更新
我定期在大型代码块中添加print()
或cat()
语句,以告诉我R何时完成了我分析的特定部分。像txtProgressBar()
这样的函数,还可以向函数添加自己的进度条。