Add `mode()` aggregation function to find most common unique value.
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- typescript
- Domaine
- data
Piste de recherche
Commencez par examiner les API des fonctions d’agrégation et l’exemple StackBlitz lié dans l’issue, y compris mode.test.ts. Ajoutez mode() comme fonction d’agrégation disponible, en conservant la première valeur en cas d’égalité, et assurez-vous que les tests unitaires couvrent le comportement décrit.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The statistical mode is a very common metric for data and very useful with nominal/categorical data. For example, say a table is of days with categories ["Sunny", "Cloudy", "Rainy"] -- knowing most days are "Rainy" is more useful than using unique() and knowing that the weather can be those categories.
A rough implementation of one can be seen below. The reason for the weird Array.from(counts).find(...) is that most implementations of mode from what I can tell tend to prefer finding the first element with the maximum count when there is a tie. I am open to other implementations if this isn't a concern.
const mode: AggregationFn<any> = (columnId, leafRows) => {
if (!leafRows.length) {
return
}
let maxCount = 0
const counts = leafRows.reduce((counts, row) => {
const value = row.getValue(columnId)
const valueCount = (counts.get(value) ?? 0) + 1
maxCount = Math.max(maxCount, valueCount)
return counts.set(value, valueCount)
}, new Map<unknown, number>())
return Array.from(counts).find(([, count]) => count === maxCount)![0]
}
And here is a StackBlitz implementation showing it passes unit tests.
- Langage dominant
- TypeScript
- Étoiles
- 28.5k
- Forks
- 3.6k
- Merge moyen
- 17 h 39 min
- PR mergées (30 j)
- 10
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de TanStack/table
-
Issue template renders `react-table`, not `TanStack/table`Peut-être pris @vishruthasgowda l’a pris il y a 15 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
TanStack/table#6595 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
table-core 9.2.5+: private types leak from .d.ts files, declaration emit fails with TS2883Peut-être pris @MFA-G l’a pris aujourd’hui. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
[svelte] createTableHook: App* wrappers call setContext in the parent's component context (set_context_after_init when showing a column)Peut-être pris @india3Eth l’a pris aujourd’hui. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
TanStack/table#6601 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Cast required to access custom options when defining a custom plugin/featurePeut-être pris @sorena-paydar l’a pris il y a 16 jours. Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de TanStack/table
Issues similaires
-
[bug] diagnostics.dumpBody:Buffer 形态请求(透传 lane)跳过 dumps/ 落盘,仅留 raw/-unknown-Peut-être pris @ranxianglei l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
ranxianglei/billion-context#2421 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
pending triage
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
nuxt/test-utils#1842 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
MoonshotAI/kimi-code#4146 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
farbenmeer/tapi#531 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour