我们上一张已经讲过如何把提取的数据随机分组,今天来讲讲怎么使用SEER数据库计算发病率趋势,在这之前,我们先来看一篇例文,
题目:Incidence, Prognostic Factors and Survival Outcome in Patients With Primary Hepatic Lymphoma
作者计算了1983-2015发病率年度百分比变化和发病率走势图,使得发病率走势一目了然,是个加分项。我们今天来讲讲怎么像文章一样从SEER数据库提取发病率数据,并做出发病率走势图。
首先打开SEERStat软件输入账号连上数据库
然后点击左上角这个符号
然后会打开一个新的有统计的界面
点击statisc
然后在新界面选择第4个
然后点击selection
这个界面我们需要对年龄、性别和疾病诊断设定
我们这次是想比较男女发病率有什么不同,就不使用乳腺癌发病率了,因为乳腺癌发病率肯定是女性高啊,我们这次使用肝癌发病率
Table这里要加入性别
最后点击闪电图标就可以了,得到数据如下图,1975-2017的APC也给出来了,我们要把它导出整理一下
整理后得到如下结果就可以进行分析了
我们先导入我们需要的R包,ggplot2,splines,rms,stringr,然后我们把数据导入R并查看数据
library(ggplot2)
library(splines)
library(rms)
library(stringr)
be<-read.csv("E:/r/test/fabinglv2.csv",sep=',',header=TRUE)
names(be)
“all.year” 和"all.Rate"代表肝癌的年份和发病率,
“year”、“sex”、“Rate” 表示分组的年份、性别和发病率
我们先绘制散点图查看数据结构
ggplot(be, aes(be$all.year, be$all.Rate) )+geom_point()#绘制散点图
这个图形看起来不像直线关系,我们来模型拟合一下,在这之前还要处理一下年份的数据结构,因为它不是数字类型的,分析不了
be$all.year<-str_extract(be$all.year, "\\d+")#把年龄里面的数字提取出来
be$year<-str_extract(be$year, "\\d+")#把年龄里面的数字提取出来
be$year<-as.numeric(be$year)
be$all.year<-as.numeric(be$all.year)
be$sex<-as.factor(be$sex)
##把它们转成数字类型后就可以分析了
model.spline <- lm(be$all.year ~ rcs(be$all.year))#建立样条回归
summary(model.spline)
##P值小于0.05,可以确定是非线性关系了
开始绘制图形,先绘制总发病率的
ggplot(be, aes(be$all.year, be$all.Rate)) +
geom_point()+geom_line()+
stat_smooth(method = lm, formula = y ~ rcs(x,5))
可以美化一下
ggplot(be, aes(be$all.year, be$all.Rate)) +
geom_point(shape=21,size=4,col="black",fill="black")+geom_line(linetype=1,size=1)+
stat_smooth(method = lm, formula = y ~ rcs(x,5)) ##对图形美化
分别绘制男女的肝癌发病率
ggplot(be, aes(be$year, be$Rate,group=sex)) +
geom_point()+geom_line()+
stat_smooth(method = lm, formula = y ~ rcs(x,5))
可以再美化一下
图形做完了,几乎和上面论文的图一模一样,甚至还要美观一点。我们这里1是男性,2是女性,可以看出男性的肝癌发病率要明显的高。
本内容讲到这里,SCI论文需要的结果我们已经全部做出来了,您有心的话已经完全可以自己使用SEER数据库做一篇自己的文章了,还等什么呢?