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、2Tなどの行の数の表も必要です。

どうもありがとう!私はこの答えを少し探していましたが、まだ何も見つかりませんでした。

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

applyand thenを使用する方法は次の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 に答える