2014-03-13 33 views
0

我有一个包含TRUE和FALSE值的多个列的表。例如:R:创建总结布尔值的新列

Table <- data.frame("A" = c(TRUE, TRUE, TRUE, FALSE, FALSE), "B" = c(TRUE, FALSE, TRUE, FALSE, FALSE), "C" = c(TRUE, TRUE, TRUE, FALSE, TRUE)) 

要获得每列的总结,我可以使用:

summary(Table) 

要获取:

 A    B    C   
Mode :logical Mode :logical Mode :logical 
FALSE:2   FALSE:3   FALSE:1   
TRUE :3   TRUE :2   TRUE :4   
NA's :0   NA's :0   NA's :0 

不过,我想打印这是一个向量的TRUE百分比。例如

 A    B    C   
60% 60% 80% 

回答

2

你当然可以进一步格式化输出。但本质上,这将这样的伎俩:

> apply(Table,2,function(c) sum(c)/length(c)) 
    A B C 
0.6 0.4 0.8 
+0

是的,或者更简单地说,'colMeans(表)'。 – Aaron

+0

是...... :)但是这样他学到了关于apply()的一些东西......我不给鱼 - 我教鱼,你知道 – Raffael

3

我认为最简单的解决方法是:

colMeans(Table) 

## A B C 
## 0.6 0.4 0.8