gpt4 book ai didi

r - 在 R 中聚合分类表(带百分比)

转载 作者:行者123 更新时间:2023-12-01 11:17:04 26 4
gpt4 key购买 nike

我在 R 中有下表:

Sample             Cluster  CellType  Condition  Genotype  Lane
Sample1 1 A Mut XXXX 1
Sample2 2 B Mut YYYY 1
Sample3 2 A Mut YYYY 2
Sample4 1 A Mut ZZZZ 1
Sample5 2 B Mut YYYY 3
Sample6 1 B Mut YYYY 1
Sample7 1 A Mut XXXX 2

我愿意:

  • 按 Cluster 列聚合表,
  • 其他列产生与集群相关的主导值
  • 以及“置信水平”,作为与同一集群相关的值的优势百分比

像这样:

Cluster      CellType  Condition  Genotype     Lane
1 A (75%) Mut (100%) XXXX (50%) 1 (75%)
2 B (66%) Mut (100%) YYYY (100%) 1 (33%)

我试过如下使用聚合函数,它产生了接近的结果,但还不完全是这样:

Mode <- function(x) {
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}
library(dplyr)
aggregate(. ~ Cluster, clustering_report, Mode)

最佳答案

这是一个基本的 R 解决方案,

m1 <- do.call(rbind, 
lapply(split(df, df$Cluster),
function(i) sapply(i[3:6],
function(j) {
t1 <- prop.table(table(j));
nms <- names(t1[which.max(t1)]);
paste0(nms, ' (' ,round(max(t1)*100), '%', ')')
})))

cbind.data.frame(unique(df[2]), m1)

这给出了,

Cluster CellType  Condition    Genotype    Lane
1 1 A (75%) Mut (100%) XXXX (50%) 1 (75%)
2 2 B (67%) Mut (100%) YYYY (100%) 1 (33%)

关于r - 在 R 中聚合分类表(带百分比),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49317560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com