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

如何在R语言中通过CFU(y变量)估算diltn(x变量)?

嘿,我看你已经用R的dplyr和ggplot搞定了数据可视化,现在要解决CFU=77对应的diltn估算问题对吧?刚好我可以帮你用R实现和Excel类似的效果,甚至更灵活~

先整理下你的实验数据

CFUstraindiltn
159aM128748
124.aM122916
76.5aM12972
22aM12324
16.5aM12108
17aM1236
22.5aM1212
17.5aM124

你当前的绘图代码

ggplot(data=data, aes(x=diltn, y=CFU))+ 
  geom_point()+ 
  geom_line()+ 
  scale_x_log10()

在R中估算CFU=77对应的diltn值

从你用scale_x_log10()可以看出来,稀释度(diltn)取对数后和CFU呈现近似线性的关系,这和Excel里用趋势线拟合的逻辑一致,这里给你两种靠谱的实现方式:

方法1:线性插值(和Excel插值逻辑最接近)

我们先对diltn做log10变换,然后在CFU和log10(diltn)之间做插值,最后再转换回原始的diltn值:

# 先给数据加一列log10转换后的稀释度
data <- data %>% mutate(log_diltn = log10(diltn))

# 插值得到CFU=77对应的log_diltn
interp_result <- approx(x = data$CFU, y = data$log_diltn, xout = 77)

# 转换回原始稀释度数值
estimated_diltn <- 10^interp_result$y
estimated_diltn

运行这段代码后,得到的结果应该和Excel里的估算值几乎一致。

方法2:拟合线性模型预测

如果你的数据线性趋势很稳定,也可以先拟合CFU和log10(diltn)的线性模型,再通过模型反推对应的diltn:

# 先拟合线性模型
fit <- lm(CFU ~ log_diltn, data = data)

# 提取模型的截距和系数
intercept <- coef(fit)[1]
log_diltn_coef <- coef(fit)[2]

# 根据线性公式反推log_diltn,再转换回原始值
estimated_log_diltn <- (77 - intercept)/log_diltn_coef
estimated_diltn <- 10^estimated_log_diltn
estimated_diltn

这个方法适合数据线性关系更显著的场景,结果和插值法差异很小,你可以根据自己的数据情况选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:49:28