1、整合数据(最初的血药浓度检测结果数据与winnolin计算的参数结果数据)
2、计算方差
3、计算GMR、CI
install.packages("tidyverse")
install.packages("readxl")
install.packages("PowerTOST")
library(tidyverse)
library(readxl)
library(PowerTOST)
lx_cq <- as_tibble(read_xlsx("1.初始数据.xlsx")) #如果环境变量与数据集来源一致,可以不加路径
lx_ba <- as_tibble(read_xls("2.PK参数结果.xls"))
lx_ba$Subject <- as.factor(lx_ba$Subject)
lx_ba$Treatment <- as.factor(lx_ba$Treatment)
lx_ba$AUClast <- as.double(lx_ba$AUClast) #转化为因子,或是分类变量
lx_ba$AUClast
new_ba<-lx_ba %>%
filter(!is.na(AUClast)) %>%
transmute(Subject,Treatment,AUC=log(AUClast)),提取参数数据中的结果
new_ba
new_cq <- lx_cq %>%
filter(Nominal_Time==0) %>%
select(Subject,Sequence,Treatment,Period)
fact_c<-c("Subject","Sequence","Treatment","Period")
new_cq[fact_c] <- lapply(new_cq[fact_c],as.factor)#处理检测数据集
new_cq
fina_join <- left_join(new_ba,new_cq,by=c("Subject","Treatment")) #整合两个处理好的数据集
fina_join
mod <- lm(AUC~Subject+Treatment+Period,fina_join) #线性处理,得到方差
mse <- anova(mod)[[3]][4] 选择方差位置,提取方差
mse
cv <- mse2CV(mse) CV计算函数
Mean <- fina_join %>%
group_by(Treatment) %>%
summarise(mean=mean(AUC)) #按照参比制剂与受试制剂分类计算AUC的平均值
GMR <- exp(Mean[[2]][2]-Mean[[2]][1]) #计算GMR
GMR
CI.BE(pe=GMR,CV=cv,n=26) #计算置信区间的函数