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

如何利用汇总数据框对另一数据框的值进行空白校正

96孔板细菌吸光度数据的空白校正方案

校正逻辑

需严格遵循以下步骤完成空白校正:

  • 计算每个时间点的空白组(无细菌培养基)平均吸光度
  • 用该时间点的空白均值,减去同时间点每个细菌孔的单个测量值(先校正单孔数据,再计算样本均值)
  • 同时输出校正后的原始单孔数据和汇总统计数据

完整处理代码

1. 计算各时间点空白均值

# 提取每个时间点的空白组平均吸光度
blank_means <- Test_Data %>%
  filter(Sample_Name == "Blank") %>%
  group_by(Timepoint) %>%
  summarise(Blank_Mean = mean(Measurement, na.rm = TRUE))

2. 处理原始单孔数据(生成校正后单孔数据)

# 将空白均值匹配到对应时间点的所有样本,计算单孔空白校正值
Test_Data_Blanked <- Test_Data %>%
  left_join(blank_means, by = "Timepoint") %>%
  mutate(Blanked_Measurement = Measurement - Blank_Mean) %>%
  filter(Sample_Name != "Blank") # 移除空白组数据(可选)

3. 生成校正后的汇总统计数据

基于校正后的单孔数据计算样本均值和标准差,这是更严谨的统计方式:

Test_Data_Summarised_Blanked <- Test_Data_Blanked %>%
  group_by(Timepoint, Sample_Name) %>%
  summarise(
    Blanked_Mean = mean(Blanked_Measurement, na.rm = TRUE),
    Blanked_Sd = sd(Blanked_Measurement, na.rm = TRUE),
    .groups = "drop"
  )

可选:基于原汇总数据的校正方法(仅作参考)

如果需要基于已汇总的Test_Data_Summarised做校正,可参考以下代码(注意:这种方式未先校正单孔数据,统计严谨性略低):

Test_Data_Summarised_Blanked_Alt <- Test_Data_Summarised %>%
  left_join(blank_means, by = "Timepoint") %>%
  mutate(
    Blanked_Mean = Measurement_mean - Blank_Mean,
    # 空白均值的标准误需纳入标准差计算(空白组重复数为3)
    Blanked_Sd = sqrt(Measurement_sd^2 + (sd(Test_Data$Measurement[Test_Data$Sample_Name == "Blank" & Test_Data$Timepoint == .$Timepoint])/sqrt(3))^2)
  ) %>%
  filter(Sample_Name != "Blank")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 09:12:47