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

如何将R语言table命令的结果合并回原数据框?

实现方法

以下是几种在R中实现将table函数的频数结果合并回原数据框的常用方案:

Base R 方案

利用ave()函数按分组计算每组行数,直接生成新列:

df$table <- ave(df$points, df$position, FUN = length)

这里ave()会根据position分组,对任意列(此处用points仅作为占位,实际不影响结果)计算组内行数,也就是该position的频数,结果会自动匹配到原数据框的每一行。

tidyverse(dplyr)方案

如果习惯用tidyverse语法,可以用dplyr的分组计算功能:

library(dplyr)

df <- df %>%
  group_by(position) %>%
  mutate(table = n()) %>%
  ungroup()

group_by(position)按位置分组,n()返回每组的行数,mutate新增列后用ungroup()取消分组,避免后续操作受分组状态影响。

转换table结果后合并方案

先把table的输出转换为数据框,再和原数据框合并:

# 将table结果转为数据框并修正列名
pos_freq <- as.data.frame(table(df$position))
colnames(pos_freq) <- c("position", "table")

# 合并原数据框
df <- merge(df, pos_freq, by = "position")

这种方法先把频数表结构化,再通过merge()按position列匹配,实现频数的批量填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:10:06