0%

医学统计软件的应用(R语言)-笔记

2019年冬学期《医学统计软件的应用(R语言)》笔记。
持续更新。

第一部分 R语言的基本知识

1.1 R语言的基本符号体系

赋值:<- 或者 =,常用的是左箭头,等号一般用在参数传递里。
基本运算:+ - * / 加减乘除,这里的除法不是整数除法,会取到小数点。% 不代表取余操作。
结果提示符:> 命令行中代表运算结果。 注释:# 单个井号代表注释。
整数序列:a : b 返回a,b之间所有的整数。
对象(变量)命名:不能以数字开头,不能包含特殊字符,避免与保留字重复,大小写区别。定义新的变量时不用声明类型。
空值:NULL

1.2 R语言的基本数据类型

查看数据的类型:typeof(变量)
双整型: 双整型用来存储普通的数值型数据,可正可负,可大可小,可包含小数部分。是R语言中默认的数值类型。
整型: 整型只包含整数部分,在计算机内部占用的存储空间比双整型小。定义整型时在整数后面加大写字母L,例如2L表示整型2。不然默认存储为双整型。
这里提到整型和双整型时,要注意到浮点计算误差,例如 sqrt(2)^2 - 2 的计算结果为 4.440892e-16 而不是零。
字符串: 双引号包含的字符。
逻辑型: TRUE T FALSE F
复数: 形如 a + bi 使用较少。
原始向量: 存储数据的原始字节。使用较少。

1.3 R语言的数据结构

1.3.1 原子型向量

原子型向量的定义:函数名 <- c(数据1,数据2,数据3,...) 这里的c是combine的意思,会将括号里的数据组合成一个向量。
原子型向量是一维向量,一个向量内只能包含一种基本数据类型的数据(双整型,整型,字符型,逻辑值,复数型,原始类型)。
判断是否为原子向量:is.vector(变量名)

1.3.2 属性

属性是赋予给原子向量(或者其他对象)的额外的信息。属性并不影响对象的取值,一般也不予显示。一般情况下,R语言会忽略属性信息,但是在某些特定的情况下,R语言会检查对象是否具有特定的属性值,以此来判断是否进行一些特定的操作。
查看对象的属性:attributes(对象名)
一个原子型向量常见的三种属性:名称,维度,类。
名称属性: names(对象名) 取对象的名称属性,如果没有则返回 NULL,直接对其赋值能添加名称属性。对原子型向量,名称属性为与原向量等长的字符串向量。名称属性不影响取值,即使改变了原向量的值,名称属性也不变。
维度属性: dim(对象名) 取对象的维度属性。原子向量是一维的,可以对其赋维度将其变成一个n维数组。维度属性是一个数值型向量,第一个值代表行,第二个代表列,往后就是切片等。填充这个数组时,总是优先填充完列的部分。
类: 后续介绍。

1.3.3 矩阵

可以使用 matrix(原子型向量,nrow = ?,ncol = ?,byrow = TRUE) 函数单独直接生成二维的矩阵,并且可以自定义填充的方式(默认按列)。

1.3.4 数组

可以使用 array(原子型向量,dim = 维度向量) 函数单独直接生成n维的数组。

1.3.5 类
1.3.6 强制转换
1.3.7 列表
1.3.8 数据框

1.4 R语言的计算方式

个人觉得R语言的最大特点之一就是其使用的元素方式执行的计算方法。

  1. 当对单个数据集进行操作时,R会将相同的计算分别应用于每个元素。
  2. 执行两个数据集之间的操作时,R会将两个数据集分别排成一列,对相同位置的元素进行操作。当两个数据集长度不等,会对较短的数据集进行循环操作。
  3. 想进行常规的举证操作:%*% 矩阵内乘法 %o% 矩阵外乘法。

这种计算方法体现在R语言的方方面面,极大的方便了对数据进行处理。

1.5 R语言的环境

安装包:install.packages("函数名") 安装任何新的函数包。
载入包:library("函数名") 将指定的包载入到当前的工作环境。
查看当前环境的所有对象:ls() 这里括号内的默认参数是当前环境。

1.6 R语言的索引体系

1.7 判断,循环和函数

定义函数:my_function <- function(参数列表){函数体} R语言的参数传递类似于C和Python,包括参数默认值的设置。R语言的函数没有返回语句,函数体中最后一个语句的结果即为函数的返回值。
函数名后的 () 可理解为函数的触发器,带了括号就会运行函数体内的语句,不带括号就是指函数对象。
查看未知函数的参数:args(函数名)
常用函数:
抽样函数:sample(数据集,size = 抽样数,replace = FALSE, prob = 各元素概率)
取小数位:round(数据,corners = 小数位)
重复运行代码:replicate(重复次数,代码) 将多次运行的结果存储为一个向量返回。
查看帮助:?函数名 查看具体函数的帮助页面 ??部分函数名 搜索关键词。

第二部分 描述性统计及统计图形

2.1 R语言的描述性统计函数

函数 描述 备注
mean(x) 均数 这里的 x 大多数指的是数值型的向量
median(x) 中位数
sd(x) 标准差
var(x) 方差
mad(x) 绝对中位差
quantile(x, probs) 求分位数
range(x) 全距范围
sum(x) 求和
diff(x, lag = n) 滞后差分
min(x) 最小值
max(x) 最大值
scale(x, center = T, scale = T) 中心化或者标准化 按列,中心化是各值减去均值,整体平移至原点附近,标准化是各值减去均值后除以标准差

2.2 R语言的概率分布函数

R语言中内置了多种不同的概率分布函数,每一种分布又分别有:密度函数d(概率密度函数),分布函数p(单侧累积概率函数),分位数函数q(分布函数的反函数,求给定概率处的界值),随机函数r(给定条件下返回若干随机值)。

函数 分布 函数 分布

2.3 数值变量的描述性统计

总体概览:summary() 能够计算数值变量的最小值、最大值、四分位数、中位数和均数及因子变量的频数计数。
矩阵分行列计算:apply(object, 1 or 2, function) 1为按行计算,2为按列计算。
数据框分组计算:by(data, factor, function) data为待计算的数据(数据框中的待计算的变量),factor为分类变量。
aggregate(data, by = list(factor), function) 传入一个列表作为为分类变量。

2.4 分类变量的描述性统计

分类变量用频数表和二维列联表来描述。

函数 描述

2.5 基本图形

函数 描述

第三部分 假设检验

3.1 $t$检验

3.2 非参检验

3.3 卡方检验

第四部分 方差分析

第五部分 回归分析

第六部分 广义线性模型

第七部分 Meta分析