You need to enable JavaScript to run this app. 如何统计数据框中指定列出现频率最高的前N个元素
优惠活动
大模型
产品
解决方案
定价
更多

如何统计数据框中指定列出现频率最高的前N个元素

实现方案

下面提供两种常用的实现路径,均可直接适配上万条数据的TopN统计需求:

tidyverse 实现(适配后续ggplot2可视化场景)

你已经在后续规划使用ggplot2,推荐用tidyverse生态的dplyr完成统计,代码逻辑清晰易维护:

library(dplyr)

# 统计Top3客户频次,如需Top10直接将slice参数改为1:10即可
top_customer <- df %>%
  count(CustomerID, name = "Times") %>%
  arrange(desc(Times)) %>%
  slice(1:3)

输出的tibble格式结果和你要求的结构完全一致,可直接传入ggplot2的绘图函数。

原生R实现(无需加载第三方包)

如果不想依赖第三方包,可以用base R的基础函数完成:

# 生成频次表并按降序排序
freq <- sort(table(df$CustomerID), decreasing = TRUE)
# 转为数据框并修改列名
top_customer <- head(as.data.frame(freq), 3)
colnames(top_customer) <- c("CustomerID", "Times")

内容的提问来源于stack exchange,提问作者user14205458

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 00:24:02