我有以下矩阵
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等等......
非常感谢!我一直在寻找这个答案,但还没有找到任何东西。
答案 0 :(得分: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
答案 1 :(得分:2)
以下是使用apply
然后使用table
的方法:
rs <- t(apply(coin.flip,1,function(x){c(length(which(x=='H')),length(which(x=='T')))}))
table(rs[,2])
我转换了apply
的结果,因为这可能是您希望它们显示的方式。
答案 2 :(得分: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