-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage_progress.R
More file actions
117 lines (98 loc) 路 4.46 KB
/
Copy pathpackage_progress.R
File metadata and controls
117 lines (98 loc) 路 4.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# package_progress.R
# Przyk艂ady wykorzystania paczki 'progress'
# Instalacja (je艣li jeszcze nie zainstalowano):
# install.packages("progress")
library(progress)
# ==============================================================================
# PRZYK艁AD 1: Podstawowy pasek post臋pu
# Najprostsza implementacja z domy艣lnymi ustawieniami.
# ==============================================================================
cat("\nPrzyk艂ad 1: Podstawowy pasek\n")
pb1 <- progress_bar$new(total = 100)
for (i in 1:100) {
pb1$tick() # Aktualizuje pasek o 1 krok
Sys.sleep(0.02) # Symulacja pracy
}
# ==============================================================================
# PRZYK艁AD 2: Pasek z czasem up艂ywaj膮cym, procentami i szacowanym czasem (ETA)
# Zgodnie z mo偶liwo艣ciami paczki, mo偶emy dodawa膰 w艂asne tagi informacyjne.
# Pasek nie znika po zako艅czeniu (clear = FALSE).
# ==============================================================================
cat("\nPrzyk艂ad 2: Z艂o偶ony pasek (Procent, Czas, ETA)\n")
pb2 <- progress_bar$new(
format = " Obliczanie [:bar] :percent | Czas: :elapsed | ETA: :eta",
total = 100,
clear = FALSE, # Zostawia pasek w konsoli po sko艅czeniu
width = 75 # Ustalona szeroko艣膰 paska
)
for (i in 1:100) {
pb2$tick()
Sys.sleep(0.05)
}
# ==============================================================================
# PRZYK艁AD 3: W艂asne znaki na pasku post臋pu (Custom characters)
# Mo偶emy zmieni膰 domy艣lne znaki "=" na cokolwiek innego.
# ==============================================================================
cat("\nPrzyk艂ad 3: Niestandardowe znaki post臋pu\n")
pb3 <- progress_bar$new(
format = " Pobieranie [:bar] :percent",
total = 50,
complete = "+", # Znak dla uko艅czonej cz臋艣ci
incomplete = "-", # Znak dla nieuko艅czonej cz臋艣ci
current = ">", # Znak dla aktualnej pozycji (grot)
clear = TRUE
)
for (i in 1:50) {
pb3$tick()
Sys.sleep(0.05)
}
# ==============================================================================
# PRZYK艁AD 4: Pasek post臋pu z dynamicznym tekstem (Tokens)
# Idealne, gdy iterujemy po plikach lub zmiennych i chcemy wy艣wietla膰 ich nazwy.
# ==============================================================================
cat("\nPrzyk艂ad 4: Dynamiczne nazwy element贸w (Tokens)\n")
nazwy_plikow <- c("dane_Q1.csv", "dane_Q2.csv", "dane_Q3.csv", "dane_Q4.csv")
pb4 <- progress_bar$new(
format = " Przetwarzanie pliku: :plik [:bar] :percent",
total = length(nazwy_plikow)
)
for (plik in nazwy_plikow) {
# Przekazujemy aktualn膮 warto艣膰 do tokena ':plik'
pb4$tick(tokens = list(plik = plik))
Sys.sleep(0.8) # Symulacja d艂u偶szego przetwarzania pliku
}
# ==============================================================================
# PRZYK艁AD 5: Aktualizacja paska o niestandardowy skok (Wi臋cej ni偶 1 jednostka)
# Przydatne, gdy w jednym kroku p臋tli przetwarzamy paczk臋 danych (np. 100 wierszy).
# ==============================================================================
cat("\nPrzyk艂ad 5: Aktualizacja o wi臋kszy krok (Batch processing)\n")
calkowita_liczba_wierszy <- 1000
rozmiar_paczki <- 100
pb5 <- progress_bar$new(
format = " Przetwarzanie wierszy [:bar] :current/:total (:percent)",
total = calkowita_liczba_wierszy
)
# Symulacja przetwarzania 1000 wierszy w paczkach po 100
for (i in 1:(calkowita_liczba_wierszy / rozmiar_paczki)) {
pb5$tick(rozmiar_paczki) # Pasek przesuwa si臋 od razu o 100 jednostek
Sys.sleep(0.3)
}
# ==============================================================================
# PRZYK艁AD 5a: Aktualizacja paska o niestandardowy skok (Wi臋cej ni偶 1 jednostka)
# Przydatne, gdy w jednym kroku p臋tli przetwarzamy paczk臋 danych (np. 100 wierszy).
# =============================================================================
library(crayon) # Wczytujemy pakiet odpowiedzialny za kolory
cat("\nPrzyk艂ad 5a: Aktualizacja o wi臋kszy krok z ZIELONYM I CZERWONYM KOLOREM\n")
calkowita_liczba_wierszy <- 1000
rozmiar_paczki <- 100
# Tworzymy pasek post臋pu, u偶ywaj膮c crayon::green() do pokolorowania formatu
pb5a <- progress_bar$new(
format = crayon::green(" Przetwarzanie wierszy ") %+% crayon::red("[:bar]") %+% crayon::green(":current/:total (:percent)"),
total = calkowita_liczba_wierszy,
clear = FALSE
)
# Symulacja przetwarzania 1000 wierszy w paczkach po 100
for (i in 1:(calkowita_liczba_wierszy / rozmiar_paczki)) {
pb5a$tick(rozmiar_paczki) # Pasek przesuwa si臋 od razu o 100 jednostek
Sys.sleep(0.3)
}