自今日起,我推出SPSS教程,针对医学常见的资料进行统计分析。同时,由于R语言越来越多用于数据的统计分析,在推出SPSS教程的同时,这里也推出R语言教程--医学研究的R语言应用,针对同样的数据,开展统计分析。
R系列教程也将包括以下内容
1.实验性定量数据统计分析策略(10篇)
2. 实验性定性数据统计分析策略(5篇)
3. 观察性研究统计分析策略(7-9篇)
4. 生存分析策略(3-4篇)
5. 影响因素研究统计分析策略(3-5篇)
6. 混杂偏倚控制基本统计学方法(5篇)
7. 复杂试验设计与统计分析方法(5-7篇)
本教程不再介绍R语言的软件、数据导入、整理等,如果诸位需要,可详见本公众号之前的系列:“30天学会R语言系列”(点击:R语言各类学习资源集合,欢迎学习)。
医学研究的R语言应用(1):正态性检验
同期SPSS教程篇,已经就正态性检验,进行了详细的叙述(SPSS统计分析策略(1):正态性检验与判断),本文采用R语言对本案例进行分析,不妨请诸位结合两篇文章一起来学习和研究。
研究实例
将出生28天的20只大鼠随机分成两组,分别饲以高蛋白和低蛋白饲料,8周后观察其体重(g)。问两种不同饲料组别的大鼠体重正态性情况如何?数据见数据库weight.sav(SPSS格式).
高蛋白组:133,145,112,138,99,157,126,121,139,106,115
低蛋白组:118,75,106,87,94,110,102,124,130
数据导入、整理与描述
library(foreign) # 利用foreign直接将数据库从SPSS中导入
e1=read.spss("weight.sav") #读取数据集,形成list格式
e1<-as.data.frame(e1) #将数据转为数据库
str(e1) # 浏览变量
is.factor(e1$group)# group变量是因子吗?
is.numeric(e1$weight)# group变量是数值吗?
summary(e1$weight) # 计算中位数均数
sd(e1$weight) # 计算标准差
table(e1$group) #计算分类数据的人数
分组计算均数和标准差
#可借助tapply语句进行数据分析
tapply(e1$weight,e1$group,summary)# 计算中位数均数
#这里可以借助于group_by函数进行
tapply(e1$weight,e1$group,summary)# 计算中位数均数
library(tidyverse)
library(dplyr)
summarise(group_by(e1,group),
mean=mean(weight,na.rm=T),
sd=sd(weight,na.rm=T),
median=median(weight,na.rm=T))
绘制直方图
hist(e1$weight,
col = "red", border = "pink",xlab = "体重",
main = "体重直方图")
#分别绘制两组大鼠的直方图
par(mfrow = c(1, 2)) #两幅子图在同一行显示
hist(e1$weight[e1$group=="1=高蛋白"],
col = "blue", border = "pink",xlab = "体重",
main = "高蛋白组直方图")
hist(e1$weight[e1$group=="2=低蛋白"],
col = "blue", border = "pink",xlab = "体重",
main = "低蛋白组直方图")
单样本正态性检验
shapiro.test(e1$weight) # SW方法
# KS 方法,spss教程的KS方法实际上是#Lilliefor 法校正
library(nortest)
lillie.test(e1$weight) #Lilliefor 法
多样本正态性检验
tapply(e1$weight,e1$group,shapiro.test)
-本文结束,如有程序有问题,请联系本人修改-
meta分析
R语言
真实世界研究
统计技巧