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语言的最大特点之一就是其使用的元素方式执行的计算方法。
- 当对单个数据集进行操作时,R会将相同的计算分别应用于每个元素。
- 执行两个数据集之间的操作时,R会将两个数据集分别排成一列,对相同位置的元素进行操作。当两个数据集长度不等,会对较短的数据集进行循环操作。
- 想进行常规的举证操作:
%*%
矩阵内乘法%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 基本图形
函数 | 描述 |
---|