📜  如何在 R 中制作频率分布表?(1)

📅  最后修改于: 2023-12-03 15:08:46.460000             🧑  作者: Mango

如何在 R 中制作频率分布表?

在数据分析或统计学中,频率分布表是一种统计工具,用来总结和描述数据集中各个变量的频率、百分比和累计百分比等信息。在 R 语言中,我们可以使用多种方法制作频率分布表,以下是其中的两种常用方法:

方法一:使用 base R 中的 table() 函数

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 包是一个非常流行的数据处理和操作包,包含了多个基础数据操作和变换函数。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

上述代码将频数列转换为百分比列,并四舍五入保留两位小数。