将表函数应用于具有不同类别的多个分类变量

时间:2012-06-14 14:10:05

标签: r automation

我正在从SAS过渡到 R 。我需要帮助一些我可以在SAS中轻松完成的事情但我在 R 中对此没有任何线索。

我有一个包含许多分类变量的数据框(全部转换为因子),比如X1 - X50。每个变量可以有不同的类别。 例如,

         X1 can be Male, Female     
         x2 can be 1, 0       
         X3 can be 1, 2, 3, 4, 5       

我想在所有50个分类变量上运行一个表命令,这样我得到一个包含三列的输出数据框,如下所示:

Group Variable    Levels     Frequency  
   1     x1          Male         10     
   1     X1           Female       30    
   1     X2            1           5  
   1     X2            0           20    
   1     X2            Missing     15  
   1     X3            1           5  
   1     X3            2           5  
   1     X3            3           5  
   1     X3            4           10   
   1    X3            5           5  
   1    X3            Missing     5  
   2    
   2  
   2  
   2  
   2  

我需要按组进行单变量频率分布。因此,列组标识原始数据帧的子集以计算频率。

1 个答案:

答案 0 :(得分:0)

不完全是您正在寻找的,但方向正确。

     mydata
      X1    X2
      Male   A
      Male   B
      Female C
      Female A
      Female C
as.data.frame(unlist(lapply(mydata, table))) #produces the following, 
          unlist(lapply(mydata, table))
X1.Female                             3
X1.Male                               2
X2.A                                  2
X2.B                                  1
X2.C                                  2