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

如何在R中按Group统计Distance频次并为数据框新增频次列

在R中按分组统计值的出现频次并新增列的最优方法

针对你的需求——给数据集新增一列,展示每个Distance值在对应Group中的出现频次,以下是两种高效且常用的实现方法:

方法一:使用dplyr(tidyverse生态,语法直观)

dplyr是R中处理数据的常用工具包,语法简洁易读,适合常规数据分析场景:

  1. 先安装并加载dplyr包(未安装则运行install.packages("dplyr"))
  2. 用add_count()函数一步完成分组统计并新增列:
library(dplyr)

# 模拟你的数据集结构
df <- data.frame(
  Group = c("A", "A", "A", "B", "B", "B", "B"),
  Distance = c(10, 10, 20, 10, 20, 20, 20)
)

# 新增Count列,统计每个Group内Distance的出现次数
df <- df %>%
  add_count(Group, Distance, name = "Count")

也可以用group_by()+mutate()的组合,逻辑更直白:

df <- df %>%
  group_by(Group, Distance) %>%
  mutate(Count = n()) %>%
  ungroup()

方法二:使用data.table(大数据场景最优)

如果你的数据集规模较大,data.table在运行速度和内存利用率上的优势更明显:

  1. 安装并加载data.table包(未安装则运行install.packages("data.table"))
  2. 转换数据格式后按分组统计:
library(data.table)

# 转换为data.table格式
dt <- as.data.table(df)

# 新增Count列
dt[, Count := .N, by = .(Group, Distance)]

# 如需转回data.frame格式
df_result <- as.data.frame(dt)

两种方法最终都会生成你需要的结果:每行的Count值,就是该行Distance在所属Group中的出现次数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:25:21