Add `mode()` aggregation function to find most common unique value.
维护者通常 1 天内回复
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 45/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- typescript
- 领域
- data
调研方向
首先查看聚合函数 API 以及 issue 中链接的 StackBlitz 示例,包括 mode.test.ts。将 mode() 添加为可用的聚合函数,在平局时保留第一个值,并确保单元测试覆盖所描述的行为。
由索引模型根据 Issue 内容生成。
描述
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.
- 主要语言
- TypeScript
- 星标
- 28.5k
- 派生
- 3.6k
- 平均合并
- 17 小时 39 分钟
- 30 天内合并 PR
- 10
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
TanStack/table 的其他 Issue
-
Issue template renders `react-table`, not `TanStack/table`可能已有人在做 @vishruthasgowda 于 15 天前认领。 未关闭
难度 1/5 1 小时以内 新手友好度 78/100
维护者通常 1 天内回复
-
table-core 9.2.5+: private types leak from .d.ts files, declaration emit fails with TS2883可能已有人在做 @MFA-G 今天认领。 未关闭
难度 3/5 1-2 天 新手友好度 74/100
维护者通常 1 天内回复
-
[svelte] createTableHook: App* wrappers call setContext in the parent's component context (set_context_after_init when showing a column)可能已有人在做 @india3Eth 于 1 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 68/100
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 38/100
维护者通常 1 天内回复
-
Cast required to access custom options when defining a custom plugin/feature可能已有人在做 @sorena-paydar 于 16 天前认领。 未关闭
难度 5/5 一周以上 新手友好度 35/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 1/5 1-3 小时 新手友好度 84/100
answerLoops/answerLoops#345 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 82/100
siyuan-note/siyuan#20313 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
LanternOps/breeze#8254 ·
维护者通常 1 天内回复
-
难度 1/5 1-3 小时 新手友好度 82/100
gofish-graphics/gofish-graphics#1084 ·
维护者通常 1 天内回复