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

如何计算R语言数据框num列中各数字的出现频次总和?

嘿,这个需求太常见啦,我给你整理了几种实用的实现方式,都能精准得到你想要的结果:

方法一:使用Base R的table()函数

这是最基础直接的方式,table()函数会自动统计每个值的出现次数,之后我们只需把它转换成你需要的数据框格式即可:

# 先创建你的数据框
df1 <- data.frame(num = c(1,1,1,2,2,2,3))

# 统计频次并转为数据框
freq_table <- as.data.frame(table(df1$num))
# 修改列名匹配你的需求
colnames(freq_table) <- c("num", "frequency")

# 查看结果
print(freq_table)

运行后输出结果:

num frequency
1   1         3
2   2         3
3   3         1
方法二:使用dplyr包的count()函数

如果你平时常用tidyverse系列工具,count()函数可以一步到位完成统计,代码更简洁易读:

# 先安装并加载dplyr包(首次使用需运行install.packages("dplyr"))
library(dplyr)

df1 <- data.frame(num = c(1,1,1,2,2,2,3))

# 直接统计频次并设置结果列名
freq_table <- df1 %>% 
  count(num, name = "frequency")

print(freq_table)

该方法的输出结果和上面完全一致。

方法三:使用data.table包(适合大数据场景)

如果你的数据集体量很大,data.table的处理效率会更高,用法也很直观:

# 先安装并加载data.table包(首次使用需运行install.packages("data.table"))
library(data.table)

# 将数据框转换为data.table对象
dt1 <- as.data.table(df1)

# 按num分组统计频次
freq_table <- dt1[, .(frequency = .N), by = num]

print(freq_table)

同样能得到你想要的结果,且大数据量下的运行速度优势明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:52:45