累计发病率 R语言 累计发病率图_数据结构


我们上一张已经讲过如何把提取的数据随机分组,今天来讲讲怎么使用SEER数据库计算发病率趋势,在这之前,我们先来看一篇例文,

题目:Incidence, Prognostic Factors and Survival Outcome in Patients With Primary Hepatic Lymphoma

累计发病率 R语言 累计发病率图_累计发病率 R语言_02


累计发病率 R语言 累计发病率图_累计发病率 R语言_03


作者计算了1983-2015发病率年度百分比变化和发病率走势图,使得发病率走势一目了然,是个加分项。我们今天来讲讲怎么像文章一样从SEER数据库提取发病率数据,并做出发病率走势图。

首先打开SEERStat软件输入账号连上数据库

累计发病率 R语言 累计发病率图_累计发病率 R语言_04


然后点击左上角这个符号

累计发病率 R语言 累计发病率图_累计发病率 R语言_05


然后会打开一个新的有统计的界面

累计发病率 R语言 累计发病率图_数据_06


点击statisc

累计发病率 R语言 累计发病率图_数据_07


然后在新界面选择第4个

累计发病率 R语言 累计发病率图_数据结构_08


然后点击selection

累计发病率 R语言 累计发病率图_数据_09


这个界面我们需要对年龄、性别和疾病诊断设定

累计发病率 R语言 累计发病率图_累计发病率 R语言_10


我们这次是想比较男女发病率有什么不同,就不使用乳腺癌发病率了,因为乳腺癌发病率肯定是女性高啊,我们这次使用肝癌发病率

累计发病率 R语言 累计发病率图_数据库_11


Table这里要加入性别

累计发病率 R语言 累计发病率图_数据结构_12


最后点击闪电图标就可以了,得到数据如下图,1975-2017的APC也给出来了,我们要把它导出整理一下

累计发病率 R语言 累计发病率图_数据库_13


整理后得到如下结果就可以进行分析了

累计发病率 R语言 累计发病率图_数据_14


我们先导入我们需要的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)

累计发病率 R语言 累计发病率图_数据库_15


累计发病率 R语言 累计发病率图_数据结构_16


“all.year” 和"all.Rate"代表肝癌的年份和发病率,

“year”、“sex”、“Rate” 表示分组的年份、性别和发病率

我们先绘制散点图查看数据结构

ggplot(be, aes(be$all.year, be$all.Rate) )+geom_point()#绘制散点图

累计发病率 R语言 累计发病率图_数据库_17


这个图形看起来不像直线关系,我们来模型拟合一下,在这之前还要处理一下年份的数据结构,因为它不是数字类型的,分析不了

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,可以确定是非线性关系了

累计发病率 R语言 累计发病率图_数据结构_18


开始绘制图形,先绘制总发病率的

ggplot(be, aes(be$all.year, be$all.Rate)) +  
  geom_point()+geom_line()+
  stat_smooth(method = lm, formula = y ~ rcs(x,5))

累计发病率 R语言 累计发病率图_数据_19


可以美化一下

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)) ##对图形美化

累计发病率 R语言 累计发病率图_累计发病率 R语言_20


分别绘制男女的肝癌发病率

ggplot(be, aes(be$year, be$Rate,group=sex)) +  
  geom_point()+geom_line()+
  stat_smooth(method = lm, formula = y ~ rcs(x,5))

累计发病率 R语言 累计发病率图_数据_21


可以再美化一下

累计发病率 R语言 累计发病率图_累计发病率 R语言_22

图形做完了,几乎和上面论文的图一模一样,甚至还要美观一点。我们这里1是男性,2是女性,可以看出男性的肝癌发病率要明显的高。

本内容讲到这里,SCI论文需要的结果我们已经全部做出来了,您有心的话已经完全可以自己使用SEER数据库做一篇自己的文章了,还等什么呢?