2016-06-30 11 views
1

ddply hat eine .progress, um eine Fortschrittsanzeige zu erhalten, während es ausgeführt wird, gibt es eine Entsprechung für data.table in R?Fortschrittsbalken in Daten.Tabelle Aggregat Aktion

+0

Sie einen Fortschrittsbalken bedeuten Sie für 'fread()'? Wenn ja, überprüfen Sie den Parameter 'verbose'. –

Antwort

4

Ja, Sie können einen beliebigen Fortschrittsstatus verwenden.

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 

Wenn Sie über den Fortschritt fragen beim Laden der CSV-Datei mit fread dann wird es automatisch für größere Datensätze angezeigt werden. Auch wie von Sergey in Kommentar erwähnt können Sie verbose Argument verwenden, um weitere Informationen zu erhalten, sowohl in fread als auch in [.data.table.

Wenn Sie den Prozentsatz der Gruppen verarbeiten möchten.

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 
0

auf @ jangorecki die ausgezeichnete Antwort Anknüpfend, hier ist ein Weg, um einen Text Fortschrittsbalken zu verwenden:

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)