- R 菜鸟教程
- R - 教程
- R - 概述
- R - 环境设置
- R - 基本语法
- R - 数据类型
- R - 变量
- R - 运算符
- R - 判断语句
- R - Loop (循环)
- R - 函数
- R - 字符串
- R - 矢量
- R - 列表
- R - 矩阵
- R - 数组
- R - 因子
- R - 数据帧
- R - 包(Packages)
- R - 数据重塑
- R 数据接口
- R - CSV 文件
- R - Excel 文件
- R - 二进制文件
- R - XML 文件
- R - JSON 文件
- R - Web 数据
- R - 数据库
- R 图表和图形
- R - 饼图
- R - 条形图
- R - 箱线图
- R - 直方图
- R - 折线图
- R - 散点图
- R 统计示例
- R - 平均值、中位数和众数
- R - 线性回归
- R - 多元回归
- R - Logistic 回归
- R - 正态分布
- R - 二项分布
- R - 泊松回归
- R - 协方差分析
- R - 时间序列分析
- R - 非线性最小二乘法
- R - 决策树
- R - 随机森林
- R - 生存分析
- R - 卡方检验
R - 平均值、中位数和众数
R 中的统计分析是使用许多内置函数执行的。其中大多数函数都是 R 基础包的一部分。这些函数将 R 向量与参数一起作为输入并给出结果。
我们在本章中讨论的函数是 mean、median 和 mode。
Mean
它是通过将值的总和除以数据系列中的值数来计算的。
函数 mean() 用于在 R 中计算此值。
语法
在 R 中计算平均值的基本语法是 -
mean(x, trim = 0, na.rm = FALSE, ...)
以下是所用参数的描述 -
- x 是输入向量。
- trim 用于从排序向量的两端删除一些观测值。
- na.rm 用于从输入向量中删除缺失值。
例
# 创建一个向量。
x <- c(12,7,3,4.2,18,2,54,-21,8,-5)
# 找到平均值。
result.mean <- mean(x)
print(result.mean)
当我们执行上述代码时,它会产生以下结果——
[1] 8.22
应用 Trim 选项
当提供 trim 参数时,向量中的值将进行排序,然后从计算平均值中删除所需的观测值数。
当 trim = 0.3 时,将从计算中丢弃每端的 3 个值以查找平均值。
在这种情况下,排序的向量为 (−21, −5, 2, 3, 4.2, 7, 8, 12, 18, 54),从向量中删除的用于计算平均值的值为从左开始的 (−21,−5,2) 和从右开始的 (12,18,54)。
# 创建一个向量。
x <- c(12,7,3,4.2,18,2,54,-21,8,-5)
# 找到平均值。
result.mean <- mean(x,trim = 0.3)
print(result.mean)
当我们执行上述代码时,它会产生以下结果——
[1] 5.55
应用 NA 选项
如果存在缺失值,则 mean 函数返回 NA。
要从计算中删除缺失值,请使用 na.rm = TRUE。这意味着删除 NA 值。
# 创建一个向量。
x <- c(12,7,3,4.2,18,2,54,-21,8,-5,NA)
# 找到平均值
result.mean <- mean(x)
print(result.mean)
# 查找NA值的平均下降值。
result.mean <- mean(x,na.rm = TRUE)
print(result.mean)
当我们执行上述代码时,它会产生以下结果——
[1] NA
[1] 8.22
[1] 8.22
median
数据系列中最中间的值称为中位数。在 R 中使用 median() 函数来计算此值。
语法
在 R 中计算中位数的基本语法是 −
median(x, na.rm = FALSE)
以下是所用参数的描述 -
- x 是输入向量。
- na.rm 用于从输入向量中删除缺失值。
例
# 创建向量。
x <- c(12,7,3,4.2,18,2,54,-21,8,-5)
# 找出中位数。
median.result <- median(x)
print(median.result)
当我们执行上述代码时,它会产生以下结果——
[1] 5.6
mode
众数是一组数据中出现次数最多的值。Unike mean 和 median, mode 可以同时包含数字和字符数据。
R 没有标准的内置函数来计算模式。因此,我们创建一个 user 函数来计算 R 中数据集的模式。此函数将向量作为输入,并给出 mode 值作为输出。
例
# 创建函数。
getmode <- function(v) {
uniqv <- unique(v)
uniqv[which.max(tabulate(match(v, uniqv)))]
}
# 用数字创建向量。
v <- c(2,1,2,3,1,2,3,4,1,5,5,3,2,3)
# 使用用户函数计算模式。
result <- getmode(v)
print(result)
# 用字符创建向量。
charv <- c("o","it","the","it","it")
# 使用用户函数计算模式。
result <- getmode(charv)
print(result)
当我们执行上述代码时,它会产生以下结果——
[1] 2
[1] "it"
[1] "it"