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

如何在RStudio中批量获取各样本RFU最大值对应的size_bp?

批量提取DNA样本RFU峰值对应的size_bp

方法1:Base R 实现

先筛选出所有样本RFU列(排除size_bp),用sapply批量处理每一列:

# 提取所有样本列名(排除size_bp)
sample_cols <- setdiff(colnames(df), "size_bp")

# 批量计算每个样本RFU最大值对应的size_bp
peak_sizes <- sapply(sample_cols, function(col) {
  df$size_bp[which.max(df[[col]])]
})

# 转成数据框(方便后续阈值比对),或直接保留列表格式
peak_sizes_df <- data.frame(
  sample_id = gsub("_rfu", "", names(peak_sizes)),  # 去掉后缀_rfu得到样本ID
  peak_size_bp = as.numeric(peak_sizes)
)

方法2:Tidyverse 风格(dplyr + purrr)

如果习惯用tidyverse工具链,先转成长格式再处理:

library(dplyr)
library(tidyr)

peak_sizes_df <- df %>%
  pivot_longer(-size_bp, names_to = "sample_id", values_to = "rfu") %>%
  group_by(sample_id) %>%
  filter(rfu == max(rfu)) %>%
  mutate(sample_id = gsub("_rfu", "", sample_id)) %>%
  select(sample_id, size_bp) %>%
  rename(peak_size_bp = size_bp)

后续使用说明

  • 最终的peak_sizes_df是数据框格式,包含样本ID和对应峰值size_bp,可直接用于阈值比对(比如筛选峰值超出指定范围的样本)
  • 若需保留列表格式,直接使用Base R方法生成的peak_sizes即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:06:32