R - 均值、中位数和众数


R 中的统计分析是通过使用许多内置函数来执行的。大多数这些函数都是 R 基础包的一部分。这些函数将 R 向量作为输入以及参数并给出结果。

本章我们讨论的函数是均值、中位数和众数。

意思是

它的计算方法是取值的总和并除以数据系列中的值的数量。

R 中使用函数mean()来计算此值。

句法

R 中计算平均值的基本语法是 -

mean(x, trim = 0, na.rm = FALSE, ...)

以下是所使用参数的描述 -

  • x是输入向量。

  • 修剪用于从排序向量的两端删除一些观察值。

  • na.rm用于从输入向量中删除缺失值。

例子

# Create a vector. 
x <- c(12,7,3,4.2,18,2,54,-21,8,-5)

# Find Mean.
result.mean <- mean(x)
print(result.mean)

当我们执行上面的代码时,它会产生以下结果 -

[1] 8.22

应用修剪选项

当提供修剪参数时,向量中的值将被排序,然后从计算平均值中删除所需的观察数量。

当修剪 = 0.3 时,将从计算中删除每端的 3 个值以求平均值。

在这种情况下,排序向量为 (−21, -5, 2, 3, 4.2, 7, 8, 12, 18, 54),从向量中移除用于计算平均值的值为 (−21,−5,2)从左起,(12,18,54) 从右起。

# Create a vector.
x <- c(12,7,3,4.2,18,2,54,-21,8,-5)

# Find Mean.
result.mean <-  mean(x,trim = 0.3)
print(result.mean)

当我们执行上面的代码时,它会产生以下结果 -

[1] 5.55

应用 NA 选项

如果存在缺失值,则平均值函数将返回 NA。

要从计算中删除缺失值,请使用 na.rm = TRUE。这意味着删除 NA 值。

# Create a vector. 
x <- c(12,7,3,4.2,18,2,54,-21,8,-5,NA)

# Find mean.
result.mean <-  mean(x)
print(result.mean)

# Find mean dropping NA values.
result.mean <-  mean(x,na.rm = TRUE)
print(result.mean)

当我们执行上面的代码时,它会产生以下结果 -

[1] NA
[1] 8.22

中位数

数据系列中最中间的值称为中位数。R中使用median()函数来计算该值。

句法

R 中计算中位数的基本语法是 -

median(x, na.rm = FALSE)

以下是所使用参数的描述 -

  • x是输入向量。

  • na.rm用于从输入向量中删除缺失值。

例子

# Create the vector.
x <- c(12,7,3,4.2,18,2,54,-21,8,-5)

# Find the median.
median.result <- median(x)
print(median.result)

当我们执行上面的代码时,它会产生以下结果 -

[1] 5.6

模式

众数是一组数据中出现次数最多的值。与均值和中位数不同,众数可以同时具有数字和字符数据。

R 没有标准的内置函数来计算众数。因此,我们创建一个用户函数来计算 R 中数据集的模式。该函数将向量作为输入,并将模式值作为输出。

例子

# Create the function.
getmode <- function(v) {
   uniqv <- unique(v)
   uniqv[which.max(tabulate(match(v, uniqv)))]
}

# Create the vector with numbers.
v <- c(2,1,2,3,1,2,3,4,1,5,5,3,2,3)

# Calculate the mode using the user function.
result <- getmode(v)
print(result)

# Create the vector with characters.
charv <- c("o","it","the","it","it")

# Calculate the mode using the user function.
result <- getmode(charv)
print(result)

当我们执行上面的代码时,它会产生以下结果 -

[1] 2
[1] "it"