蒲公英 - 制药技术的传播者 GMP理论的实践者

搜索
查看: 2675|回复: 4
收起左侧

[统计应用] R语言青霉素稳定性研究编程简略代码

[复制链接]
药徒
发表于 2019-3-13 19:33:58 | 显示全部楼层 |阅读模式

欢迎您注册蒲公英

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 刘先聚 于 2019-3-13 19:44 编辑

tempr<-c(37,43,54,60)
k<-c(NA,NA,NA,NA)
datals<-data.frame(tempr,k)

temp<- c(rep(tempr[1],6),rep(tempr[2],6),rep(tempr[3],6),rep(tempr[4],6))   #温度
time<-c(0,2,5,10,15,20,                     #取样时间
        0,1,2,4,8,12,
        0,0.5,1,2,3,4,
        0,0.25,0.5,1,1.5,2)
concen<-c(100,96.03,88.18,80.574,72.32,64.92,      #浓度
          100,96.025,92.256,85.08,71.433,62.305,
          100,94.035,87.962,79.31,69.016,61.392,
          100,94.94,89.067,82.36,73.308,64.13)
datax<-data.frame(temp,time,concen)
for(i in 1:4){
newdata<-datax[datax$temp==tempr,]
with(newdata,{
y<-concen
x<-time
nlmod<-nls(y~A*exp(-B*x))
datals[i,2]<<-coefficients(nlmod)
})
}
x<-1/(datals$tempr+273.15)
y<-log(datals$k)
datalz<-data.frame(y,x)
datalz
lmod<-lm(y~x,data=datalz)
summary(lmod)
coefficients(lmod)
u<-coefficients(lmod)
k25<-exp(u[1]+u[2]/(25+273.15))
t0.9<- -log(0.9)/k25
t0.9
datax
   temp  time  concen
1    37  0.00 100.000
2    37  2.00  96.030
3    37  5.00  88.180
4    37 10.00  80.574
5    37 15.00  72.320
6    37 20.00  64.920
7    43  0.00 100.000
8    43  1.00  96.025
9    43  2.00  92.256
10   43  4.00  85.080
11   43  8.00  71.433
12   43 12.00  62.305
13   54  0.00 100.000
14   54  0.50  94.035
15   54  1.00  87.962
16   54  2.00  79.310
17   54  3.00  69.016
18   54  4.00  61.392
19   60  0.00 100.000
20   60  0.25  94.940
21   60  0.50  89.067
22   60  1.00  82.360
23   60  1.50  73.308
24   60  2.00  64.130

25℃时 t.0.9= 18.39h


回复

使用道具 举报

药士
发表于 2019-3-13 23:56:18 | 显示全部楼层
编程啊,不懂哦。
回复

使用道具 举报

药徒
 楼主| 发表于 2019-3-14 11:07:14 | 显示全部楼层
本帖最后由 刘先聚 于 2019-3-14 11:08 编辑
syhorchid 发表于 2019-3-13 23:56
编程啊,不懂哦。

下载一个RStudio软件
然后将代码部分贴进去就可以计算出t0.9了本质的部分还是阿累尼乌斯方程的应用
如果有其它数据只要修改代码部分的温度 时间 浓度的数据即可。
不过一般很少用而已
回复

使用道具 举报

药徒
 楼主| 发表于 2024-10-20 11:05:33 | 显示全部楼层
# 创建温度向量
tempr <- c(37, 43, 54, 60)
# 创建 NA 值的向量,长度与 tempr 相同
k <- c(NA, NA, NA, NA)
# 创建数据框 datals,包含 tempr 和 k
datals <- data.frame(tempr, k)

# 重复 tempr 中的值,使得每个温度对应六个时间点
temp <- c(rep(tempr[1], 6), rep(tempr[2], 6), rep(tempr[3], 6), rep(tempr[4], 6))
# 创建时间向量 time,对应不同温度下的取样时间
time <- c(0, 2, 5, 10, 15, 20,  # 37°C 下的时间点
          0, 1, 2, 4, 8, 12,     # 43°C 下的时间点
          0, 0.5, 1, 2, 3, 4,    # 54°C 下的时间点
          0, 0.25, 0.5, 1, 1.5, 2)# 60°C 下的时间点
# 创建浓度向量 concen,对应不同温度下的浓度值
concen <- c(100, 96.03, 88.18, 80.574, 72.32, 64.92,  # 37°C 下的浓度
            100, 96.025, 92.256, 85.08, 71.433, 62.305, # 43°C 下的浓度
            100, 94.035, 87.962, 79.31, 69.016, 61.392, # 54°C 下的浓度
            100, 94.94, 89.067, 82.36, 73.308, 64.13)   # 60°C 下的浓度
# 创建数据框 datax,包含温度、时间和浓度
datax <- data.frame(temp, time, concen)

# 循环处理每个温度下的数据
for (i in 1:4) {
  # 选择当前温度下的数据
  newdata <- datax[datax$temp == tempr[i], ]
  # 使用 with 函数简化 newdata 的调用
  with(newdata, {
    # 指定浓度和时间作为变量
    y <- concen
    x <- time
    # 使用非线性最小二乘法拟合数据
    nlmod <- nls(y ~ A * exp(-B * x))
    # 从拟合模型中提取系数 B
    datals[i, 2] <<- coefficients(nlmod)["B"]
  })
}

# 输出 datals 数据框
print(datals)

# 计算绝对温度的倒数
x <- 1 / (datals$tempr + 273.15)
# 计算 k 的自然对数
y <- log(datals$k)
# 创建新数据框 datalz
datalz <- data.frame(y, x)

# 使用线性模型拟合 y ~ x
lmod <- lm(y ~ x, data = datalz)

# 输出线性模型的摘要信息
summary(lmod)

# 输出线性模型的系数
print(coefficients(lmod))

# 提取线性模型的系数
u <- coefficients(lmod)

# 计算 25°C 下的 k 值
k25 <- exp(u[1] + u[2] / (25 + 273.15))

# 计算浓度降至 90% 所需的时间 t0.9
t0.9 <- -log(0.9) / k25

# 输出 t0.9 的值
print(t0.9)

# 输出 datax 数据框
print(datax)
回复

使用道具 举报

药徒
 楼主| 发表于 2024-10-20 11:07:27 | 显示全部楼层
> print(datals)
  tempr         k
1   37 0.04501756
2   43 0.05765624
3   54 0.12691752
4   60 0.18771560

Call:
lm(formula = y ~ x, data = datalz)

Residuals:
        1         2         3         4
0.0017905 0.0005701 0.0014901 0.0011492

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  4.15552    0.01101  377.42 2.07e-05 ***
x           -4.59460    0.13040  -35.24 2.74e-04 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.001574 on 2 degrees of freedom
Multiple R-squared:  0.9984,        Adjusted R-squared:  0.9979
F-statistic:  1240 on 1 and 2 DF,  p-value: 2.738e-04

> print(coefficients(lmod))
(Intercept)           x
4.15552025 -4.59459967

> print(t0.9)
[1] 18.38992

> print(datax)
   temp  time  concen
1    37  0.00 100.000
2    37  2.00  96.030
3    37  5.00  88.180
4    37 10.00  80.574
5    37 15.00  72.320
6    37 20.00  64.920
7    43  0.00 100.000
8    43  1.00  96.025
9    43  2.00  92.256
10   43  4.00  85.080
11   43  8.00  71.433
12   43 12.00  62.305
13   54  0.00 100.000
14   54  0.50  94.035
15   54  1.00  87.962
16   54  2.00  79.310
17   54  3.00  69.016
18   54  4.00  61.392
19   60  0.00 100.000
20   60  0.25  94.940
21   60  0.50  89.067
22   60  1.00  82.360
23   60  1.50  73.308
24   60  2.00  64.130
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

×发帖声明
1、本站为技术交流论坛,发帖的内容具有互动属性。您在本站发布的内容:
①在无人回复的情况下,可以通过自助删帖功能随时删除(自助删帖功能关闭期间,可以联系管理员微信:8542508 处理。)
②在有人回复和讨论的情况下,主题帖和回复内容已构成一个不可分割的整体,您将不能直接删除该帖。
2、禁止发布任何涉政、涉黄赌毒及其他违反国家相关法律、法规、及本站版规的内容,详情请参阅《蒲公英论坛总版规》。
3、您在本站发表、转载的任何作品仅代表您个人观点,不代表本站观点。不要盗用有版权要求的作品,转贴请注明来源,否则文责自负。
4、请认真阅读上述条款,您发帖即代表接受上述条款。

QQ|手机版|蒲公英|ouryao|蒲公英 ( 京ICP备14042168号-1 )  增值电信业务经营许可证编号:京B2-20243455  互联网药品信息服务资格证书编号:(京)-非经营性-2024-0033

GMT+8, 2025-2-21 21:41

Powered by Discuz! X3.4运维单位:苏州豚鼠科技有限公司

Copyright © 2001-2020, Tencent Cloud.

声明:蒲公英网站所涉及的原创文章、文字内容、视频图片及首发资料,版权归作者及蒲公英网站所有,转载要在显著位置标明来源“蒲公英”;禁止任何形式的商业用途。违反上述声明的,本站及作者将追究法律责任。
快速回复 返回顶部 返回列表