基于R语言的群体药代动力学数据探索
一 、群体药代动力学数据探索目的和方法
数据探索目的
建模前通过图法和统计学方法,对研究数据探索可揭示数据特征,发现明显趋势,辨识离群值,异常值等。
数据来源
数据来自于焦正主编的基础群体药动学和药效学书籍第10章第二节模型数据
方法
作图主要用ggplot2包,及代码中涉及的包。
作图所用主题为ggplot2默认主题:theme_bw() 稍调整
二、数据探索过程
PK数据探索
加载的包和设目录
代码:
#加载的包----
library(ggplot2)
library(dplyr)
library(scales)
#设置目录----
x<-readline() #读取以下目录字段
D:\study\NONMEN\JIAOZHENG\第10章第二节代码示例199\第10章第二节代码示例\chapter10-section2\datacheck
x <- gsub("\\\\", "/", x) # 将反斜杠转换为斜
setwd(x) #设置目录
读取数据和数据处理
代码:
#数据读取和处理----
DATA<-read.csv("10-2.csv",header=T,skip=0) #读取数据:数据为焦正主编的基础群体药动学和药效学书籍第10章第二节模型数据
DATA$GROUP<-paste(DATA$DOSE,"mg") #组别加上单位
DATA$DOSE_f<-factor(DATA$GROUP,levels=c("2 mg","3 mg","4 mg","5 mg")) #组别转化分类因子
PKDATA<-filter(DATA,MDV==0,DVID==1) #提取PK数据
PDDATA<-filter(DATA,MDV==0,DVID==2) #提取PD数据
PK数据结果(部分):
PD数据结果(部分):
平均血药浓度计算和作图
计算血药浓度均值代码:
#计算血药浓度均值和标准差----
ConcvsTIMEALL<-summarise(group_by(PKDATA,TIME,DOSE_f), #按照分类计算
mean=mean(DV), #计算均值
sd=sd(DV), #计算标准差
n=sum(!is.na(DV)),
se=sd/sqrt(n)) #计算标准误差
计算结果:
平均血药浓度图(每个剂量组情况)
代码:
#作平均血药浓度图(按照组别分组)----
CONCPprofile<-
ggplot()+
geom_point(data=ConcvsTIMEALL,aes(x=TIME,y=mean,color=factor(DOSE_f)))+ #数据-点
geom_line(data=ConcvsTIMEALL,aes(x=TIME,y=mean,color=factor(DOSE_f),group=DOSE_f),size=0.7)+ #数据-线
labs(color="",shape="")+
xlab("Time(day)")+ylab("Concentration (ng/mL)")+ #坐标轴标题
# xlim(0,216)+ #x轴限定
# ylim(0,20)+ #y轴限定
scale_x_continuous(breaks=c(c(0,48,96,144,192,240,288,336,384,432,480,528)),
labels=c("0","2","4","6","8","10","12","14","16","18","20","22"))+ #坐标轴刻度设置
facet_wrap(~DOSE_f,ncol=2)+ #分两列
theme_bw()+ #内置主题
theme(axis.text=element_text(size=10,color='red'), #坐标轴字体设置
axis.title = element_text(color='black',face = "bold"),#坐标轴标题设置
panel.grid.major =element_blank(), panel.grid.minor = element_blank(),#网格线设置
legend.position = "right") #图例设置
CONCPprofile
ggsave("ALLbygroupprofile.jpeg",