R语言中的table函数

发布时间:2023-05-20

一、table函数简介

在R语言中,table()是一种常用的用于统计数据出现次数的函数。该函数通常用于绘制频数表和列联表。table()函数可以接受多个向量作为输入,并返回这些向量的频数表。

下面是一个简单的例子,展示如何使用table()函数:

# 定义一个向量
v <- c("apple","orange","banana","apple","orange","apple")
# 使用table函数返回每个元素出现的次数
table(v)

输出结果如下:

v
apple banana orange
    3      1      2

上述结果表示,在向量v中,"apple"出现了3次,"banana"出现了1次,"orange"出现了2次。

二、频数表的制作

频数表是展示数据中每个元素出现次数的一种表格形式。在统计学中,频数是指每个数据项出现的次数。在R语言中,可以使用table()函数创建频数表。

下面是一个简单的例子,展示如何使用table()函数创建频数表:

# 定义一个向量
v <- c("apple","orange","banana","apple","orange","apple")
# 使用table函数创建频数表
freqTable <- table(v)

输出结果如下:

v
apple banana orange
    3      1      2

对于大数据集,使用table()函数可以很轻松地统计每个元素出现的次数。例如,我们可以使用table()函数统计R内置数据集iris中Sepal.Length这一列每个元素的出现次数:

freqTable <- table(iris$Sepal.Length)
freqTable

输出结果如下:

freqTable
4   4.1   4.2   4.3   4.4   4.5   4.6   4.7   4.8 
1     1     1     1     3     1     4     2     5 
4.9     5   5.1   5.2   5.3   5.4   5.5   5.6   5.7 
4     9     8     4     1     2     7     6     2 
5.8   5.9     6   6.1   6.2   6.3   6.4   6.5   6.6 
6     3     8     4     2     1     5     3     2 
6.7   6.8   6.9     7   7.1   7.2   7.3   7.4   7.6 
2     1     1     4     1     3     1     2     1 
7.7   7.9 
4     1 

上述结果表示,Sepal.Length列中,4出现了1次,4.1出现了1次,4.2出现了1次,以此类推。

三、列联表的制作

列联表是指在统计学中用于比较分组变量之间关系的一种表格形式。对于两个分组变量,可以用列联表计算每个分组变量中的每个水平(或组合水平)之间的频数和比率。

在R语言中,table()函数可以用于制作简单的列联表。下面是一个例子:

# 定义两个向量
x <- c("male", "male", "female", "female", "male", "female", "male", "female")
y <- c("yes", "no", "no", "yes", "yes", "yes", "no", "no")
# 使用table函数创建两个变量的列联表
crossTable <- table(x, y)
crossTable

输出结果如下:

     y
x     no yes
  female  2   2
  male    2   2

上述结果表示,第一列为x变量的分类水平,第一行为y变量的分类水平。从左到右,上到下按照顺序为no和yes,每个单元格中的数字表示对应组合的频数。

我们可以使用addmargins()函数来为列联表添加边缘合计行和列:

crossTable <- addmargins(crossTable)
crossTable

输出结果如下:

      y
x        no yes Sum
  female   2   2   4
  male     2   2   4
  Sum      4   4   8

上述结果表示,对于每个水平,列联表都计算了在该水平下的每个水平的频数和。”Sum”列和行表示每行和每列的合计。

四、总结

在R语言中,table()函数是一种用于统计数据中每个元素出现次数并制作频数表和列联表的非常有用的函数。我们可以使用该函数来处理大量数据,并且可以根据需要进行可视化处理。对于对数据分析很有帮助。