【问题标题】:Progress bar in data.table aggregate actiondata.table 聚合操作中的进度条
【发布时间】:2016-06-30 16:56:00
【问题描述】:

ddply 有一个 .progress 在运行时获取进度条,R 中是否有 data.table 的等价物?

【问题讨论】:

  • 您是指fread() 的进度条吗?如果是,请检查verbose 参数。

标签: r data.table


【解决方案1】:

是的,你可以使用任何你想要的进度状态。

library(data.table)
dt = data.table(a=1:4, b=c("a","b"))
dt[, {cat("group:",b,"\n"); sum(a)}, b]
#group: a 
#group: b 
#   b V1
#1: a  4
#2: b  6

如果您询问使用fread 加载 csv 文件的进度,那么对于更大的数据集,它将自动显示。同样正如 Sergey 在评论中提到的那样,您可以使用 verbose 参数来获取更多信息,包括 fread[.data.table

如果您想要处理的组百分比。

grpn = uniqueN(dt$b)
dt[, {cat("progress",.GRP/grpn*100,"%\n"); sum(a)}, b]
#progress 50 % 
#progress 100 % 
#   b V1
#1: a  4
#2: b  6

【讨论】:

    【解决方案2】:

    跟进@jangorecki 的出色回答,这里有一种使用文本进度条的方法:

    library(data.table)
    dt = data.table(a=1:4, b=c("a","b"))
    grpn = uniqueN(dt$b)
    pb <- txtProgressBar(min = 0, max = grpn, style = 3)
    dt[, {setTxtProgressBar(pb, .GRP); Sys.sleep(0.5); sum(a)}, b]
    close(pb)
    

    【讨论】:

      猜你喜欢
      • 2020-06-10
      • 1970-01-01
      • 2021-06-09
      • 2020-07-01
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多