描述性统计是描述一个数据集的数值。
它们帮助我们了解数据集的中心位置,以及数据集中数值的分布情况。
我们可以用两个函数来计算R中的描述性统计。
方法1:使用summary()函数
summary(my_data)
**summary()**函数在R语言中为数据框中的每个变量计算以下数值。
- 最小值
- 第一四分位数
- 中位数
- 平均数
- 第三四分位数
- 最大值
方法2:使用sapply()函数
sapply(my_data, sd, na.rm=TRUE)
**sapply()函数可以用来计算数据框中每个变量的描述性统计量,而不是用summary()**函数计算的那些。
例如,上面的 **sapply()**函数计算了数据框中每个变量的标准差。
下面的例子显示了如何使用这两个函数来计算R中数据框中变量的描述性统计。
例子。计算R语言中的描述性统计
假设我们在R中拥有以下包含三个变量的数据框。
#create data frame
df <- data.frame(x=c(1, 4, 4, 5, 6, 7, 10, 12),
y=c(2, 2, 3, 3, 4, 5, 11, 11),
z=c(8, 9, 9, 9, 10, 13, 15, 17))
#view data frame
df
x y z
1 1 2 8
2 4 2 9
3 4 3 9
4 5 3 9
5 6 4 10
6 7 5 13
7 10 11 15
8 12 11 17
我们可以使用 **summary()**函数来计算每个变量的各种描述性统计。
#calculate descriptive statistics for each variable
summary(df)
x y z
Min. : 1.000 Min. : 2.000 Min. : 8.00
1st Qu.: 4.000 1st Qu.: 2.750 1st Qu.: 9.00
Median : 5.500 Median : 3.500 Median : 9.50
Mean : 6.125 Mean : 5.125 Mean :11.25
3rd Qu.: 7.750 3rd Qu.: 6.500 3rd Qu.:13.50
Max. :12.000 Max. :11.000 Max. :17.00
我们还可以使用括号来只计算数据框中特定变量的描述性统计。
#calculate descriptive statistics for 'x' and 'z' only
summary(df[ , c('x', 'z')])
x z
Min. : 1.000 Min. : 8.00
1st Qu.: 4.000 1st Qu.: 9.00
Median : 5.500 Median : 9.50
Mean : 6.125 Mean :11.25
3rd Qu.: 7.750 3rd Qu.:13.50
Max. :12.000 Max. :17.00
我们还可以使用**sapply()**函数来计算每个变量的特定描述性统计量。
例如,下面的代码显示了如何计算每个变量的标准差。
#calculate standard deviation for each variable
sapply(df, sd, na.rm=TRUE)
x y z
3.522884 3.758324 3.327376
我们也可以在**sapply()中使用函数()**来计算描述性统计。
例如,下面的代码显示了如何计算每个变量的范围。
#calculate range for each variable
sapply(df, function(df) max(df, na.rm=TRUE)-min(df, na.rm=TRUE))
x y z
11 9 9
最后,我们可以创建一个复杂的函数来计算一些描述性统计数字,然后将这个函数与**sapply()**函数一起使用。
例如,下面的代码显示了如何计算数据框中每个变量的模式。
#define function that calculates mode
find_mode <- function(x) {
u <- unique(x)
tab <- tabulate(match(x, u))
u[tab == max(tab)]
}
#calculate mode for each variable
sapply(df, find_mode)
$x
[1] 4
$y
[1] 2 3 11
$z
[1] 9
从输出结果中我们可以看到。
- 变量x的模式是4。
- 变量y的模式是2、3和11(因为这些数值中的每一个出现的频率最高)
- 变量z的模式是9。
通过使用**summary()和sapply()**函数,我们可以为数据框中的每个变量计算出我们想要的任何描述性统计。