mean(), anyNA(), and members of "Summary" group generic should "untranspose"
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 32/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- r
- Bereich
- data, performance
Rechercherichtung
Beginne damit, die Implementierungen von mean(), anyNA() und dem generischen "Summary"-Gruppenverfahren für DelayedArray-Objekte zu lokalisieren, und untersuche anschließend DelayedAperm und simplify(). Verfolge den im Issue beschriebenen Stamm der verzögerten Operationen und ermittle, wie ein umgekehrtes aperm() vor der Berechnung angewendet werden könnte. Als erledigt gilt die Aufgabe, wenn diese Operationen ihre Ergebnisse beibehalten und dabei eine unnötige verzögerte Transposition vermeiden, wenn die Vereinfachung den Baum verkürzt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Delayed transposition (t() or aperm()) significantly slows down block processing of a DelayedMatrix or DelayedArray object. However the result of block-processed operations like mean(), anyNA(), and members of the "Summary" group generic does not change if the input is transposed. So these operations should be smart enough to "untranspose" their input in order to be faster.
The exact algorithm for "untransposing" could be:
- Go up the tree of delayed ops in
xuntil a DelayedAperm op is found. Only climb the trunk of the tree i.e. start fromx@seedand go up only if there is exactly 1 "next seed", that is, if the current seed is a DelayedUnaryOp object. Stop on the first DelayedAperm op (i.e. the most recently applied DelayedAperm op), or when the next seed is no longer a DelayedUnaryOp object. - If no DelayedAperm op was found then there is nothing to do.
- If a DelayedAperm op is found, do
y <- aperm(x, ....)where the exactaperm()transformation is the reverse of this DelayedAperm op. The tree trunk inyshould be either shorter than the tree trunk inx(if the 2 DelayedAperm ops could be simplified) or longer (if they couldn't). If it's shorter then replacexwithybefore computingmean(),anyNA(), etc...
The advantage of this algo is that it doesn't need to know anything about the delayed ops found between the root of the tree and the first DelayedAperm op found on the trunk. It just relies on simplify().
- Vorherrschende Sprache
- R
- Sterne
- 29
- Forks
- 12
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Bioconductor/DelayedArray
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
Bioconductor/DelayedArray#129 · 11 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
Bioconductor/DelayedArray#127 · 1 Kommentar ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
Bioconductor/DelayedArray#125 · 1 Kommentar ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
Bioconductor/DelayedArray#123 ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
Bioconductor/DelayedArray#122 ·
Alle Issues in Bioconductor/DelayedArray
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
robjhyndman/forecast#1220 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
JamesHWade/deputy#192 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
bug triage_needed
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
pharmaverse/rtables#1123 · 1 Kommentar · 1 Reaktion ·