📅  最后修改于: 2023-12-03 15:08:46.460000             🧑  作者: Mango
在数据分析或统计学中,频率分布表是一种统计工具,用来总结和描述数据集中各个变量的频率、百分比和累计百分比等信息。在 R 语言中,我们可以使用多种方法制作频率分布表,以下是其中的两种常用方法:
table()
函数是 R 语言中用来制作频数分布表或列联表的基本函数,它可以对数据进行分组并计算每组中变量的频数,最终将结果以表格形式呈现。下面是一个简单的示例:
# 使用mtcars数据集作为例子
freq_table <- table(mtcars$cyl)
# 打印频率分布表
print(freq_table)
输出结果如下:
4 6 8
11 7 14
上述频率分布表显示了 mtcars
数据集中的 cyl
变量(汽车缸数)按照数量分别为 4、6 和 8 的汽车的频数。
如果我们希望将频率分布表的结果转换为数据框形式,可以使用 data.frame()
函数将其转换为数据框对象:
data.frame(freq = freq_table, percentage = round(prop.table(freq_table)*100, 2))
输出结果如下:
freq percentage
4 11 34.38
6 7 21.88
8 14 43.75
上述频率分布表将频数和百分比列都打印出来了,百分比列采用四舍五入的方式保留两位小数。
dplyr
包是一个非常流行的数据处理和操作包,包含了多个基础数据操作和变换函数。count()
函数是 dplyr
包中的一种制作频率分布表的函数,与 table()
函数类似。
下面是示例代码:
library(dplyr)
# 使用mtcars数据集作为例子
freq_table <- mtcars %>% count(cyl)
# 输出频率分布表
print(freq_table)
输出结果如下:
# A tibble: 3 x 2
cyl n
<dbl> <int>
1 4 11
2 6 7
3 8 14
可以看到,输出结果是一个 data.frame
对象,包含了 cyl
变量和对应的频数值。
如果我们需要计算频率分布表中每组变量的百分比,可以使用如下代码:
freq_table %>% mutate(percentage = round(prop.table(n)*100, 2))
输出结果如下:
# A tibble: 3 x 3
cyl n percentage
<dbl> <int> <dbl>
1 4 11 34.38
2 6 7 21.88
3 8 14 43.75
上述代码将频数列转换为百分比列,并四舍五入保留两位小数。