1 目标变量为数值变量

1.1 单变量描述

1.1.1 方法云集

  1. summary() 函数
    summary()函数为由R自带基础包提供。该函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计。
    其格式为:
summary(data1$var1)
  1. Hmisc包的describe()函数
    Hmisc包中的describe()函数可返回变量和观测的数量、缺失值和唯一值的数目、平均值、分位数,以及五个最大的值和五个最小的值。
    其格式为
library(Hmisc)
describe(data1$var1)
  1. pastecs包的stat.desc()的函数
    pastecs包中有一个名为stat.desc()的函数,它可以计算种类繁多的描述性统计量。使用格式为:
library(pastecs)
stat.desc(data,basic = TURE,desc = TURE,norm ==FALSE,p=0.95)

(1)其中的data是一个数据框。
若basic=TRUE(默认值),则计算其中所有值、空值、缺失值的数量,以及最小值、最大值、值域,还有总和。
(2)若desc=TRUE(同样也是默认值),则计算中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数。
(3)若norm=TRUE(不是默认的),则返回正态分布统计量,包括偏度和峰度(以及它们的统计显著程度)和Shapiro–Wilk正态检验结果。这里使用了p值来计算平均数的置信区间(默认置信度为0.95)

  1. psych包的describe()函数
library(psych)
describe(data1$var1)

1.2 分组描述

doBy包的summaryBy函数

R自带的基础包不够灵活,结果导出也较麻烦,建议通过doBy 包的summaryBy函数进行分组描述性统计。
其格式如下:
summaryBy(var1 + var2 + var3 ~ groupvar1 + groupvar2,data= ?, id=NULL,FUN= ?)
例子:

library(doBy)
myresult1 <- summaryBy(var1 + var2  + var3 +var4 ~ groupvar1 ,data = data1, id=NULL,mean)# 把结果存储在myresults1中,该结果是一个数据表。myresult2 <- summaryBy ( .  ~  groupvar2 + groupvar4,data = data1, id=NULL,var)# . 代表所有变量fun1 <- function(x){c(m=mean(x, na.rm=TURE), v=var(x, na.rm=TURE),q=quantile(x, na.rm=TURE), md = median(x, na.rm=TURE) ,l=length(x),sd = sd(x,na.rm = TURE))
}# 先定义我们需要的描述性统计量函数
myresult3 <- summaryBy(var1 + var2  + var3 +var4 ~ groupvar1 ,data = data1, FUN= fun1)

1.3 假设检验

数值变量假设检验方法较多,假设检验见以后推文

2 目标变量为分类变量

2.1 描述性统计

1 可以通过R基础包自带的table()函数对类别变量频数进行统计,得到结果以values的形式展示,可以通过as.data.frame()函数将其转为dataframe
其官方格式如下:

table(...,exclude = if (useNA == "no") c(NA, NaN),useNA = c("no", "ifany", "always"),dnn = list.names(...), deparse.level = 1)
# 注意:table()函数默认忽略缺失值(NA)。
# 要在频数统计中将NA视为一个有效的类别
# 请设定参数useNA="ifany"。
# deparse.level = 2表示使用原变量名作为新的行列名。

若把以上结果存储于mytable中,可以使用margin.table()和prop.table()函数分别生成边际频数和比例

margin.table(mytable)
margin.table(mytable,1)
prop.table(mytable,2)
addmargins(mytable)
# 1表示计算行比例,2表示计算列比例。
# 你可以使用addmargins()函数为这些表格添加边际和

2 可以通过gmodels包的的CrossTable()函数可以创建二维交叉表,有以下优点,但得到的结果以list形式展示
CrossTable()函数有很多选项,可以做许多事情:计算(行、列、单元格)的百分比;指定小数位数;进行卡方、Fisher和McNemar独立性检验;计算期望和(皮尔逊、标准化、调整的
标准化)残差;将缺失值作为一种有效值;进行行和列标题的标注;生成SAS或SPSS风格的输出。
其官方示列格式如下:

CrossTable(x, y, digits=3, max.width = 5, expected=FALSE, prop.r=TRUE, prop.c=TRUE,prop.t=TRUE, prop.chisq=TRUE, chisq = FALSE, fisher=FALSE, mcnemar=FALSE,resid=FALSE, sresid=FALSE, asresid=FALSE,missing.include=FALSE,format=c("SAS","SPSS"), dnn = NULL, ...)

示列: 对MS数据集下FIMMSE和agep,edug变量进行示列

my1 <-  table(MS$FIMMSE,MS$agep,deparse.level = 2)
my2 <- table(MS$FIMMSE,MS$agep,deparse.level = 2)
# 以上得到的结果为values形式my1 <- as.data.fram(my1)
my2 <- as.data.fram(my2)
# 把my1,my2转换为data.frame形式,但该结果为一个长表myr1 <- tidyr::spread(data=my1,key=MS.FIMMSE,value=Freq)
myr2 <-  tidyr::spread(data=my2,key=MS.FIMMSE,value=Freq)
# 对my1,my2进行长转宽,得到一个宽表。my <- rbind(myr1,myr2,fill=TRUE)
# 把以上两个描述上下连接起来,用NA填充不存在的列。

以下结果为my1:转换为data.framd的表格

以下结果为myr1:进行长宽转换的结果

以下结果为my:上下连接两个分组(年龄agep,受教育程度edug)的结果

2.2 假设检验

二维和多维列联表的假设检验多为卡方检验。其应用条件如下:
(1)数据为随机样本数据。
(2)所有的理论数T≥5并且总样本量n≥40,用Pearson卡方进行检验。
(3)如果理论数T<5但T≥1,并且n≥40,用连续性校正的卡方进行检验。
(4)如果有理论数T<1或n<40,则用Fisher’s检验。
(5)R×C表中理论数小于5的格子不能超过1/5。
(6)不能有小于1的理论数,可以通过增加样本数。列合并来实现

2.1.1 vcd包的chisq.test函数

其官方指南如下

library(grid)
library(vcd)
chisq.test(x, y = NULL, correct = TRUE,p = rep(1/length(x), length(x)), rescale.p = FALSE,simulate.p.value = FALSE, B = 2000)# correct = T代表使用矫正卡方检验
  1. Fisher精确检验
mytable2 <- table (var3,var4)
fisher.test(mytable)

注意:这里的fisher.test()函数可以在任意行列数大于等于2的二维列联表上使用,但不能用于2×2的列联表。

R语言描述性统计分析相关推荐

  1. R语言描述性统计分析:相关性分析

    R语言描述性统计分析:相关性分析 相关性分析:pearson.spearman.kendall 相关性系数的显著性检验: 偏相关性分析: library(ISwR) attach(thuesen) c ...

  2. R语言描述性统计分析:假设检验

    R语言描述性统计分析:假设检验 单样本t检验: 双样本t检验: 方差齐性检验: 配对样本t检验: 单样本Wilcoxon符号秩检验: 两样本Wilcoxon符号秩检验: daily.intake &l ...

  3. R语言描述性统计分析:使用epiDisplay包的summ函数获取dataframe数据中每个变量的常用统计量、对每个变量进行汇总统计

    R语言描述性统计分析:使用epiDisplay包的summ函数获取dataframe数据中每个变量的常用统计量.对每个变量进行汇总统计 目录

  4. R语言基础题及答案(二)——R语言与统计分析第二章课后习题(汤银才)

    R语言与统计分析第二章课后习题(汤银才) 题-1 用函数rep( )构造一个向量x, 它由3个3, 4个2, 5个1构成. x<-rep(c(3,2,1),times=c(3,4,5));pri ...

  5. R语言基础统计分析:正态性检验、方差齐性检验、T检验、方差分析、秩和检验

    R语言基础统计分析 1. 正态性检验 1.1 Shapiro-Wilk正态检验方法 1.2 QQ图 2. 方差齐性检验 2.1 Bartlett检验,适用于正态分布数据 2.2 Levene检验,非正 ...

  6. R语言基本统计分析——抽样

    R语言基本统计分析--抽样 简单随机抽样 简单随机抽样是指从数据总体中任意抽取指定数量的数据作为样本,其中每个可能被抽取中的样本概率相等.可以用R语言中的sample()函数进行随机抽样.抽取方法分为 ...

  7. R语言基础题及答案(三)——R语言与统计分析第三章课后习题(汤银才)

    R语言与统计分析第三章课后习题(汤银才) 题-1 从1到100个自然数中随机不放回地抽取5个数, 并求它们的和. sum(sample(1:100,5)) 15~490任何一个数都有可能 [1] 29 ...

  8. R语言基础题及答案(六)——R语言与统计分析第六章课后习题(汤银才)

    R语言与统计分析第六章课后习题(汤银才) 题-1 有一批枪弹, 出厂时, 其初速v∼N(950,σ2)v\sim N(950,\sigma^2)v∼N(950,σ2)(单位:m/sm/sm/s). 经 ...

  9. R语言描述性统计:使用mean函数计算dataframe数据中指定数据列的均值

    R语言描述性统计:使用mean函数计算dataframe数据中指定数据列的均值 目录 R语言描述性统计:使用mean函数计算dataframe数据中指定数据列的均值

  10. 《R语言与统计分析》-探索性数据分析

    ####渐近正态性的图形检验#### limite.central<- function(r=runif,distpar=c(0,1),m=0.5,s=1/sqrt(12),n=c(1,3,10 ...

最新文章

  1. 让IE6、IE7、IE8支持CSS3的圆角、阴影样式
  2. JS引用类型(2)——Array类型
  3. 【数据分析】数据分析基础:SQL重要知识点梳理!
  4. 第 3 章 第 2 题 求级数问题 递归法实现
  5. memache的使用场景
  6. java中请求转发与重定向_JavaEE进阶 请求转发与请求重定向
  7. vuex express mysql_基于Vue2.0+Vuex+Axios+NodeJs+Express+MySQL实现京东移动web商城
  8. 如何需求分析和编写测试用例
  9. cocos2d(背景图片循环滚动)
  10. 为什么程序员很难找到合适的另一半?
  11. 感恩有你 华为云学院伴你前行
  12. python学习之路之:import(详细介绍import的各种调用原理和使用方法)
  13. 招商银行笔试题之鸡鸭分类问题
  14. 留着以后慢慢做的计算几何(题表)
  15. 对比学习论文综述(part4 transformer + 总结)
  16. 自动气象站的主要功能是什么?
  17. Cisco Packet Tracer企业网络安全策略的综合设计与实现
  18. 2019保研南京大学软件学院后的一些感想
  19. 4-Arm PEG-DSPE 四臂-聚乙二醇-磷脂 可用于修饰小分子材料
  20. 小学六年级上册计算机教学总结,小学信息技术五年级上册教学工作总结

热门文章

  1. 高级口译 WordList1
  2. python jinja2_Python Jinja2使用方法
  3. 放大图片不失真,不变模糊的方法
  4. [Luogu4173/BZOJ4259] 残缺的字符串
  5. 产品读书《人类简史》
  6. Qt:局域网文件同步工具
  7. java生成条形码_Java使用jbarcode生成条形码
  8. 物理专业英语词汇(H-N)
  9. Beyond Compare 激活解决办法
  10. Linux下 df 命令查看磁盘空间