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

如何按另一变量分组计算数据框中某变量的唯一值频次

解决方案

以下是几种高效的方法,能直接按Variant_Classification分组统计Tumor_Sample_Barcode的唯一值数量,比拆分数据框的方式更简洁高效:

1. 使用dplyr包(tidyverse生态,语法直观)

如果已经安装了tidyverse,直接加载dplyr后用分组统计:

library(dplyr)

df_maf %>%
  group_by(Variant_Classification) %>%
  summarise(unique_sample_count = n_distinct(Tumor_Sample_Barcode))

该方法会返回一个格式规整的数据框,包含分组类别和对应的唯一样本数,易读性强。

2. 使用data.table包(大数据集处理效率最优)

如果你的数据量较大,data.table的运算速度会明显优于其他方法:

library(data.table)

setDT(df_maf)[, .(unique_sample_count = uniqueN(Tumor_Sample_Barcode)), by = Variant_Classification]

uniqueN()是data.table内置的高效统计唯一值的函数,配合分组操作by,能快速输出结果。

3. 基础R方法(无需额外安装包)

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

aggregate(
  Tumor_Sample_Barcode ~ Variant_Classification,
  data = df_maf,
  FUN = function(x) length(unique(x))
)

该方法仅依赖基础函数,无需额外安装,适合快速验证需求。

这些方法都能直接得到你需要的统计结果,避免了手动拆分数据框的繁琐操作,同时效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:47:23