You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于频率排序的R语言实现:给定DataFrame生成指定频率统计输出

解决R语言数据框数值按出现频率排序的问题

没问题,这就帮你实现需求!咱们一步步来操作:

首先,先把你提供的数据框在R中定义出来:

ds <- structure(list(MSISDN = c(800, 800, 783, 975, 800)), 
                .Names = "Number", 
                row.names = c(NA, -5L), 
                class = "data.frame")

接下来,咱们用几行代码完成频率统计、排序和格式调整:

# 统计每个数值的出现频率并转为数据框
freq_df <- as.data.frame(table(ds$Number))
# 修改列名为你需要的"Num"和"Freq"
colnames(freq_df) <- c("Num", "Freq")
# 按频率降序排序,频率相同时按数值降序排列(和你要的输出顺序匹配)
sorted_freq <- freq_df[order(-freq_df$Freq, -freq_df$Num), ]
# 去掉行号输出结果
print(sorted_freq, row.names = FALSE)

运行这段代码后,你就能得到完全符合要求的输出:

Num Freq
 800    3
 975    1
 783    1

简单解释下逻辑:table()函数能快速统计每个唯一值的出现次数,转成数据框后调整列名,再用order()指定排序规则——先按频率从高到低,频率相同的话按数值从大到小,最后去掉默认的行号,就得到了你想要的简洁格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:21:56