Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Limit the number of progression conditions signaled

Aperta
#81 2 commenti 4 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
r

Direzione di ricerca

Inizia dal punto di ingresso progressor() e verifica come i controlli interval e times esistenti gestiscono la segnalazione dell’avanzamento. Esamina Issue #74 e gli esempi di loop e map-reduce in questo report per chiarire il comportamento previsto. Il lavoro è completo quando gli aggiornamenti dell’avanzamento possono essere limitati sia per i loop indicizzati sia per le chiamate in stile lapply, con test che coprano l’interfaccia selezionata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement feature request feature/nested-progress

There are already mechanisms for control how frequent handlers report on progress updates (interval and times), but there's no mechanism built-in for controlling how frequently updates are signaled (e.g. Issue #74).

The workaround is for the developer to limit this, e.g.

  p <- progressr::progressor(length(x) / 10)
  sum <- 0
  for (kk in seq_along(x)) {
    Sys.sleep(0.1)
    sum <- sum + x[kk]
    if (kk %% 10 == 0) p(message = sprintf("Added %g", x[kk]))
  }

However, when using map-reduce functions (e.g. lapply(X, function(x) { ... }), we don't have access to an index, only the value x.

One solution could be to introduce an every argument to progressor() and then have it skip internally, e.g.:

  p <- progressr::progressor(along = x, every = 10L)
  sum <- 0
  for (kk in seq_along(x)) {
    Sys.sleep(0.1)
    sum <- sum + x[kk]
    p(message = sprintf("Added %g", x[kk]))
  }

and

  p <- progressr::progressor(along = X, every = 10L)
  y <- lapply(X, FUN = function(x) {
    p(message = sprintf("Added %g", x[kk]))
    Sys.sleep(0.1)
    sqrt(x)
  })

One can also imagine a (per minute) frequency and (total) times argument.

Lingua principale
R
Stelle
299
Fork
11
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di futureverse/progressr

Tutte le issue di futureverse/progressr

Issue simili

Altre issue su R

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.