在R中运行Apply函数时,有没有一种打印迭代次数的方法

han*_*ick 5 iteration r apply

我在一个大数据集上运行了一个apply-family函数,所以我想知道是否有一种方法可以知道到目前为止的工作情况,到目前为止已经查看了多少个元素或类似的东西?

Psi*_*dom 5

您可以考虑创建一个全局计数器,并指定何时打印进度,例如,您可以在处理了 10% 的数据时打印通知;

counter <- 0
data <- rnorm(100)
results <- sapply(data, function(x) { 
                  counter <<- counter + 1; 
                  if(counter %in% seq(0, length(y), 10)) 
                      print(paste(counter, "% has been processed"))})

[1] "10 % has been processed"
[1] "20 % has been processed"
[1] "30 % has been processed"
[1] "40 % has been processed"
[1] "50 % has been processed"
[1] "60 % has been processed"
[1] "70 % has been processed"
[1] "80 % has been processed"
[1] "90 % has been processed"
[1] "100 % has been processed"
Run Code Online (Sandbox Code Playgroud)

  • 为什么不只是“打印(i)”? (3认同)
  • 传递给函数的数据可能比他想要看到的更具体。他只是想知道进度,所以最好有一个单独的“计数器”。我这里只是举个例子,实际上他的数据应该比‘1:5’更复杂,不一定能反映进度。 (2认同)