1

我有以下矩阵

coin.flip<-expand.grid(c("H","T"),c("H","T"),c("H","T"),c("H","T"))

> coin.flip
   Var1 Var2 Var3 Var4
1     H    H    H    H
2     T    H    H    H
3     H    T    H    H
4     T    T    H    H
5     H    H    T    H
6     T    H    T    H
7     H    T    T    H
8     T    T    T    H
9     H    H    H    T
10    T    H    H    T
11    H    T    H    T
12    T    T    H    T
13    H    H    T    T
14    T    H    T    T
15    H    T    T    T
16    T    T    T    T

我想逐行汇总 H 和 T 的计数。我还想要一张有多少行有 1 T、2 T 等的表格...

非常感谢!我一直在寻找这个答案,但还没有找到任何东西。

4

3 回答 3

4
> coin.flip$total_H <- rowSums(coin.flip=="H")
> coin.flip
   Var1 Var2 Var3 Var4 total_H
1     H    H    H    H       4
2     T    H    H    H       3
3     H    T    H    H       3
4     T    T    H    H       2
5     H    H    T    H       3
....snipped
> table(coin.flip$total_H)

0 1 2 3 4 
1 4 6 4 1    

Total T's table is just
> table(4- coin.flip$total_H )

0 1 2 3 4 
1 4 6 4 1     # boringly similar to total H table
于 2011-07-13T22:57:09.510 回答
2

这是一种使用applythen的方法table

rs <- t(apply(coin.flip,1,function(x){c(length(which(x=='H')),length(which(x=='T')))}))
table(rs[,2])

我转置了结果,apply因为这是您可能期望它们显示的方式。

于 2011-07-13T22:58:01.200 回答
1

严格coin.flip来说是一个data.frame而不是一个矩阵。

您可以使用 DWin 的解决方案。另一种方法是

> summary(t(coin.flip))
 V1    V2    V3    V4    V5    V6    V7    V8    V9    V10   V11   V12   V13   V14   V15   V16  
 H:4   H:3   H:3   H:2   H:3   H:2   H:2   H:1   H:3   H:2   H:2   H:1   H:2   H:1   H:1   T:4  
       T:1   T:1   T:2   T:1   T:2   T:2   T:3   T:1   T:2   T:2   T:3   T:2   T:3   T:3  

为了快速上桌,结合 DWin 和 joran 的答案

> table(rowSums(coin.flip=="T"))

0 1 2 3 4 
1 4 6 4 1   
于 2011-07-13T23:06:45.390 回答