如何利用汇总数据框对另一数据框的值进行空白校正
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
相关产品推荐
相关产品推荐

