何时杀死正在运行的脚本R

时间:2018-07-12 12:26:38

标签: r

我拥有一个更大的数据集,其中包含超过一百万个条目。如果我正在运行脚本,有时需要一段时间才能得到输出。有时,即使我让它运行了几个小时,似乎也没有任何输出。有没有办法跟踪计算的进度(或者只是看看它是否卡住了)?

1 个答案:

答案 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()这样的函数,还可以向函数添加自己的进度条。