R语言 如何使用xtabs()来计算频率

R语言 如何使用xtabs()来计算频率

在这篇文章中,我们将研究在R编程语言中使用xtabs()函数计算频率的不同方法。

xtabs()函数: 该函数用于使用公式界面从交叉分类因素中创建一个或然率表,这些因素通常包含在数据框中。

语法: xtabs(formula = ~., data = parent.frame())

参数

  • formula;一个公式对象,右侧是交叉分类变量(用+分隔)。
  • data:一个可选的矩阵或数据框,包含公式中的变量。默认情况下,变量取自环境。

方法1:使用xtabs()函数计算单程频率

在这种方法中,用户需要简单地调用xtabs()函数,并将需要计算频率的变量传给它,进一步将传来的单个变量的频率返回给R编程语言中的函数。

例子: 在这个例子中,我们将采用一个包含五个不同变量的数据框,然后使用xtabs()函数计算频率,在R语言中绕过单一的z变量。

data <- data.frame(v=rep(c('A', 'B', 'C'), 
                         times=c(20, 16, 14)),
                   w=rep(c('D', 'E', 'F'),
                         times=c(10, 10, 30)),
                   x=rep(c('G', 'H', 'I'),
                         times=c(15, 20, 15)),
                   y=rep(c('J', 'K', 'L'), 
                         times=c(16, 16,18)),
                   z=rep(c('M', 'N', 'O'), 
                         times=c(25, 15,10)))
  
xtabs(~z, data)

输出

 M  N  O 
25 15 10 

方法2:使用xtabs()函数来计算双向频率

在这个方法中,用户可以使用xtabs()函数得到组合频率,只需调用这个函数并在第一个变量的末尾使用’+’号,然后写上第二个变量的名称,就可以得到R编程语言中作为函数参数组合传递的两个变量的组合频率。

例子: 在这个例子中,我们将使用与前一个例子相同的数据框架,通过R编程语言中的xtabs()函数,使用’+’号来获得w和y两个变量的频率。

data <- data.frame(v=rep(c('A', 'B', 'C'), 
                         times=c(20, 16, 14)),
                   w=rep(c('D', 'E', 'F'), 
                         times=c(10, 10, 30)),
                   x=rep(c('G', 'H', 'I'),
                         times=c(15, 20, 15)),
                   y=rep(c('J', 'K', 'L'), 
                         times=c(16, 16,18)),
                   z=rep(c('M', 'N', 'O'),
                         times=c(25, 15,10)))
  
xtabs(~w+y, data)

输出

   y
w    J  K  L
  D 10  0  0
  E  6  4  0
  F  0 12 18

方法3:使用xtabs()函数来计算n路频率

在这个使用xtabs()函数获得频率的方法中,用户只需在变量之间加上’+’号,就可以使用这个函数获得n个变量的组合频率,而且这个函数将进一步返回R编程语言中提到的变量的频率。

例子: 在这个例子中,我们将使用R编程语言中xtabs()函数的n路频率方法计算数据框中所有变量的频率。

data <- data.frame(v=rep(c('A', 'B', 'C'),
                         times=c(20, 16, 14)),
                   w=rep(c('D', 'E', 'F'), 
                         times=c(10, 10, 30)),
                   x=rep(c('G', 'H', 'I'),
                         times=c(15, 20, 15)),
                   y=rep(c('J', 'K', 'L'),
                         times=c(16, 16,18)),
                   z=rep(c('M', 'N', 'O'), 
                         times=c(25, 15,10)))
  
xtabs(~v+w+x+y+z, data)

输出

, , x = G, y = J, z = M

   w
v    D  E  F
  A 10  5  0
  B  0  0  0
  C  0  0  0

, , x = H, y = J, z = M

   w
v    D  E  F
  A  0  1  0
  B  0  0  0
  C  0  0  0

, , x = I, y = J, z = M

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = G, y = K, z = M

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = H, y = K, z = M

   w
v    D  E  F
  A  0  4  0
  B  0  0  5
  C  0  0  0

, , x = I, y = K, z = M

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = G, y = L, z = M

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = H, y = L, z = M

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = I, y = L, z = M

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = G, y = J, z = N

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = H, y = J, z = N

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = I, y = J, z = N

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = G, y = K, z = N

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = H, y = K, z = N

   w
v    D  E  F
  A  0  0  0
  B  0  0  7
  C  0  0  0

, , x = I, y = K, z = N

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = G, y = L, z = N

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = H, y = L, z = N

   w
v    D  E  F
  A  0  0  0
  B  0  0  3
  C  0  0  0

, , x = I, y = L, z = N

   w
v    D  E  F
  A  0  0  0
  B  0  0  1
  C  0  0  4

, , x = G, y = J, z = O

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = H, y = J, z = O

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = I, y = J, z = O

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = G, y = K, z = O

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = H, y = K, z = O

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = I, y = K, z = O

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = G, y = L, z = O

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = H, y = L, z = O

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0  0

, , x = I, y = L, z = O

   w
v    D  E  F
  A  0  0  0
  B  0  0  0
  C  0  0 10

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程