ddply
有一个.progress
来获取正在运行的进度条,R中是否有等效的data.table
答案 0 :(得分:5)
是的,您可以使用您想要的任何进度状态。
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文件的进度,则会自动显示更大的数据集。同样如谢尔盖在评论中所提到的,您可以使用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
答案 1 :(得分:0)
关注@ 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)