0

我正在从 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 个分类变量一起运行一个 table 命令,这样我得到一个包含三列的输出数据框,如下所示:

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  

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

4

1 回答 1

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
于 2012-07-09T09:03:03.393 回答