在“R与生物统计专题”中,我们会从介绍R的基本知识展开到生物统计原理及其在R中的实现。以从浅入深,层层递进的形式在投必得医学公众号更新。

在上一讲中,我们介绍了第三讲 R编程基础-矩阵和数据框 (戳这里即可跳转)到现在为止,大家已经学完了R语言的基础知识,马上就开始进阶地学习一些R语言相关的统计学技能了。

今天的更新,我们会带您学习R的基本统计学技能:描述性统计分析。

1. 将数据导入R

1.1 准备好你的数据命名约定

  • 避免名称带有空格。

        好的列名:patient_age或patient.age。

列名错误:patient age。

  • 避免使用带有特殊符号的名称:?,$,*,+,#,(,),-,/,},{,|,>,

  • 避免以数字开头的变量名。请改用字母。

    好的列名称:patient_1st_meal或x1st_meal。

    列名错误:1st_male

  • 列名必须是唯一的。不允许重复的名称。

  • R区分大小写。这意味着名称不同于名称或名称。

  • 避免数据中出现空白行。

  • 删除文件中的任何评论。

  • 用NA替换缺少的值(不可用)。

  • 如果你有包含日期的列,请使用四位数格式

    格式良好:20160101。

    格式错误:01/01/16

1.2 将数据保存在外部.txt标签或.csv文件中1.3 如下将数据导入R

# 对于.txt文件my_data 
# 对于.csv文件my_data 

在这里,我们将使用名为iris的内置R数据集。

# 导入R内自带的iris数据集library(datasets)data(iris)
# 将数据存储在变量my_data中my_data 

1.3 检查数据

你可以使用head()和tails()函数检查数据,这将分别显示数据的第一部分和最后一部分。

# 显示前六行内容head(my_data, 6)

输出结果如下

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1          5.1         3.5          1.4       0.2  setosa

2          4.9         3.0          1.4       0.2  setosa

3          4.7         3.2          1.3       0.2  setosa

4          4.6         3.1          1.5       0.2  setosa

5          5.0         3.6          1.4       0.2  setosa

6          5.4         3.9          1.7       0.4  setosa

2. 常用的描述性统计的R函数

一些用于计算描述性统计量的R函数:

✎ R函数

3. 单个组的描述性统计

3.1 集中趋势的度量:均值,中位数,众数

粗略地说,集中趋势衡量的是数据的“平均”或“中间”。最常用的衡量指标包括:

集中趋势

平均值:平均值。它对异常值很敏感。

中位数:中间值。这是一个强有力的替代手段。

众数:最频繁出现的值

在R中

  • 函数mean()和median()可以分别计算平均值和中位数;

# 计算平均值mean(my_data$Sepal.Length)

[1] 5.843333

# 计算中位数median(my_data$Sepal.Length)

[1] 5.8

3.2 可变性的度量

可变性度量给出了数据“分散”的程度。

范围

极值:最小值和最大值

范围:最大值减去最小值

# 计算最小值min(my_data$Sepal.Length)

[1] 4.3

# 计算最大值max(my_data$Sepal.Length)

[1] 7.9

# 范围range(my_data$Sepal.Length)

[1] 4.3 7.9

四分位间距

四分位数将数据均匀分为4部分。四分位数间距(IQR):对应于第一和第三四分位数之间的差异-有时被用作标准偏差的可靠替代方案。

  • R功能:

quantile(x, probs = seq(0, 1, 0.25))
  • x:需要样本分位数的数值向量。

  • probs:在[0,1]之间的概率数值向量。

  • 例:

quantile(my_data$Sepal.Length)

0%  25%  50%  75% 100%

4.3  5.1  5.8  6.4  7.9

# 计算十分位数(0.1,0.2,0.3,…,0.9):quantile(my_data$Sepal.Length, seq(0, 1, 0.1))
# 计算四分位间距:IQR(my_data$Sepal.Length)

[1] 1.3

方差和标准差

方差表示与均值的平均平方差之和。标准差是方差的平方根。它测量数据中数值与平均值的平均偏差。

# 计算方差var(my_data$Sepal.Length)
# 计算标准差sd(my_data$Sepal.Length)

绝对中位数

绝对中位数(Median absolute deviation,MAD):数据中值与中值的偏差,即先计算出数据与它们的中位数之间的残差(偏差),MAD就是这些偏差的绝对值的中位数。

# 计算中位数median(my_data$Sepal.Length)
# 计算绝对中位数mad(my_data$Sepal.Length)

统计描述方式的选择

  • 范围。它不经常使用,因为它对异常值非常敏感。

  • 四分位间距。对于异常值,它非常强大。它多与中位数结合使用。

  • 方差。完全无法解释的,因为它不使用与数据相同的单位。除了用作数学工具外,很少被使用。

  • 标准偏差。方差的平方根。它以与数据相同的单位表示。在均值是集中趋势的分布(多指正态分布)的情况下,通常使用标准偏差。

  • 绝对中位数。对于具有离群值的数据,这是一种估算标准偏差的可靠方法。但是不经常使用。

  • 总而言之,四分位间距和标准差是用于报告数据变异性的两种最常用的度量。

3.3 计算变量和整个数据框的整体摘要summary()函数

函数summary()可用于显示一个变量或整个数据框的多个统计变量概况。

  • 单个变量的概况。

返回六个值:平均值,中位数,第25和,75四分位数,最小值和最大值。

summary(my_data$Sepal.Length)

输出结果如下:

Min. 1st Qu.  Median    Mean 3rd Qu.    Max.4.300   5.100   5.800   5.843   6.400   7.900

数据框概况

在这种情况下,函数summary()将自动应用于每列。结果的格式取决于列中包含的数据类型。例如:

  • 如果列是数字变量,则返回均值,中位数,最小值,最大值和四分位数。

  • 如果该列是一个因素变量(factor),则返回每个组中的观察数。

summary(my_data, digits = 1)

输出结果如下:

Sepal.Length  Sepal.Width  Petal.Length  Petal.Width        SpeciesMin.   :4     Min.   :2    Min.   :1     Min.   :0.1   setosa    :501st Qu.:5     1st Qu.:3    1st Qu.:2     1st Qu.:0.3   versicolor:50Median :6     Median :3    Median :4     Median :1.3   virginica :50Mean   :6     Mean   :3    Mean   :4     Mean   :1.23rd Qu.:6     3rd Qu.:3    3rd Qu.:5     3rd Qu.:1.8Max.   :8     Max.   :4    Max.   :7     Max.   :2.5

3.4 缺失值的情况Tips

当数据包含缺失值时,即使仅缺少一个值,某些R函数也会返回错误或NA。

例如,即使向量中仅丢失一个值,mean()函数也将返回NA。使用参数na.rm = TRUE可以避免这种情况,该参数告诉函数在计算之前删除所有NA。使用均值函数的示例如下:

mean(my_data$Sepal.Length, na.rm = TRUE)

好了,本期讲解就先到这里。

在之后的更新中,我们会进一步为您介绍R的入门,以及常用生物统计方法和R实现。欢迎关注,投必得医学手把手带您走入R和生物统计的世界。

提前打个预告,接下来我们要正式开始学习R语言的统计学技能啦,下一期将会更新“R的描述性统计分析”。喜欢的同学们快快关注起来吧。

第一讲 R-基本介绍及安装第二讲 R-编程基础-运算、数据类型和向量等基本介绍第三讲 R编程基础-矩阵和数据框

当然啦,R语言的掌握是在长期训练中慢慢积累的。一个人学习太累,不妨加入“R与统计交流群”,和数百位硕博一起学习。

快扫二维码撩客服,

带你进入投必得医学交流群,

让我们共同进步!

↓↓

- END -

长按二维码关注「投必得医学」,更多科研干货在等你!

麻烦点一下在看再走呗

r 函数返回多个值_第四讲 R描述性统计分析相关推荐

  1. java函数返回多个值_深入理解被调函数与主调函数之间的传值、传址、值返回、址返回...

    函数的英文是function,有功能的意思,函数的作用在于合理分配功能,增强程序的可读性.合理分解功能,降低程序的复杂性.隐藏函数内部的数据和实现,尽可能将问题局限于函数本身. 函数可以理解为一种功能 ...

  2. r 函数返回多个值_R语言:广义估计方程(GEE)

    01 解决何种问题 在临床研究中,经常会比较两种治疗方式对患者结局的影响,并且多次测量结局.例如为了研究两种降血糖药对血糖的控制结果是否存在差异,研究者会在两组人群服药后不同的时间点记录血糖值,然后评 ...

  3. r 函数返回多个值_R 技巧 | 绘制nomogram列线图的细节优化

    生活,有时候就需要些技巧~ 使用 nomogram 绘制列线图时,有个参数fun,输入计算特定时间点的生存函数,如果是多个时间点的话,则使用列表形式: If more than one transfo ...

  4. c++中函数放在等号右边_如何从C或C++中的函数返回多个值?

    新程序员通常在寻找从函数返回多个值的方法.不幸的是,C和C++不允许直接这样做.但是幸运的是,通过一些巧妙的编程,我们可以轻松实现这一目标. 下面是从C函数中返回多个值的方法: 通过使用指针. 通过使 ...

  5. Python学习之函数返回多个值

    Python学习之函数返回多个值 问题的引出 Python中,一个函数能不能一次返回多个值? 在C语言中,函数最多返回一个值,如果要返回多个值,可以把这些值封装在一个结构体中.注意,C语言不允许函数返 ...

  6. Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值...

    版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一.什么是指针? 简单来说: 指针就是内存地址      内存地址就是指针. ...

  7. python学习笔记-day6-函数的延续【汉字转拼音模块,函数返回多个值,匿名函数,列表生成式,generator生成器,三元运算符】...

    继续来说函数的后续知识点,主要是函数返回多个值,匿名函数,三元运算符,算是比较小的知识点. 一.汉字转拼音模的使用 1.安装模块 #install xpinyin 2.如果使用 结果: 二.函数返回多 ...

  8. python函数返回多个值_python函数返回多个值的示例方法

    python可以返回多个值,确实挺方便 函数里的return只能返回一个值,但是返回类型是没是限制的 因此,我们可以"返回一个 tuple类型,来间接达到返回多个值". 例子是我在 ...

  9. Java中如何实现一个函数返回多个值

    由于java中没有指针,不能像C++一样通过指针的方式实现一个函数返回多个值,因此在java中必须采用变通的方式解决,常用的方式有以下几种: 1.封装一个实体类,将要返回的值封装进去: 2.通过map ...

最新文章

  1. python querystring encode_百分号 json
  2. 单纯形法(二)(线性规划的基本定理)
  3. pycharm 报错 IndentationError: unexpected unindent 解决办法
  4. ASP.NET Web API 特性
  5. 不同局域网内经Internet的P2P通信技术总结
  6. Excel的python读写
  7. 基于FPGA实现uart串口模块——进阶版1
  8. 计算机控制面板设置命令,电脑的控制面板在哪打开,分享四种打开方法
  9. 程序猿面试八股文分享~
  10. 网站站内seo优化简介
  11. unity3D 涂涂乐使用shader实现上色效果
  12. error C2039: ‘tr1‘: is not a member of ‘std‘
  13. 升级Windows11遇到VirtualBox兼容性问题(附解决办法)
  14. Datawhale组队学习——Pytorch进阶训练技巧
  15. logback配置文件---logback.xml详解
  16. rust油桶用什么打_文明重启油桶获取使用攻略_文明重启油桶怎么获取和使用_玩游戏网...
  17. CUDA学习之CUDA执行模型--part3
  18. 微信小程序实现点餐系统
  19. 京东2020校招笔试题-算法工程师
  20. Velocity模板语言(VTL):说明

热门文章

  1. 计算机师范类算师范教育类吗,师范教育类专业和计算机类专业,两者相比,哪个更适合自考生报读...
  2. (三)图像转灰度图Python实现
  3. 虚拟云服务器有哪些,虚拟云主机和服务器有什么区别
  4. backupexec mysql_MySQL备份可能遇到的坑
  5. docker 安装nacos_康过来!Nacos配置和管理微服务的使用
  6. 学画画软件app推荐_路由器管理软件哪个好?6款路由器管理APP推荐_软件评测
  7. PyTorch中的torch.nn.Parameter() 详解
  8. 计算机的屏幕约是16平方分米吗,小明的卧室有16平方分米对不对
  9. python3学习笔记 雨痕_Python 3 学习笔记:数字和布尔
  10. thymealf 高级用法_Thymeleaf