在R中应用循环来计算频率分布

时间:2014-09-23 08:36:24

标签: r rstudio

假设我有一个具有多个分类功能的数据框。如何使用for循环计算频率分布表而不是查找单个分布

我使用了以下代码:

  

data
         a   b  c  
1  class 1   1  M 
2  class 2   0  F 
3  class 3   0  M 
4  class 1   1  F    
5  class 1   1  F
6  class 2   1  M    
7  class 1   0  F   
8  class 1   0  F 
9  class 2   1  M    
10 class 2   1  M 
11 class 3   1  F    
12 class 3   0  F    

>b<-data$b
>b.freq<-table(b)
>b.freq

0  1
5  7

我想对使用for循环的较大集合中的所有变量执行此操作。

请帮忙

感谢

1 个答案:

答案 0 :(得分:2)

如果您要将table功能应用于所有列,可以使用lapply

> lapply(data, table)
$a

class 1 class 2 class 3 
      5       4       3 

$b

0 1 
5 7 

$c

F M 
7 5 

更新:如何创建绘图:

par(mfrow = c(1, length(data))); 
lapply(data, function(x) barplot(table(x)))

enter image description here