0

10 個のサンプルごとに約 2000 個のデータ ポイント (カウント) を含む CSV ファイルがあります。

3,1,3,2,2,2,0,...
2,0,0,1,3,2,1,...
3,0,3,0,3,1,0,...
....

以下を使用して、各サンプルの集計されたカウントを表示しました。

x = read.csv('thefile.csv', header=FALSE)
table(as.numeric(x[1,])
table(as.numeric(x[2,])
table(as.numeric(x[3,])

すべてのサンプルの集計カウントの棒グラフ (またはその他のグラフ) をプロットして比較したいと思います。最初の5つのサンプルでテストとしてそれをやろうとしたとき:

a = table(as.numeric(x[1,])
b = table(as.numeric(x[2,])
c = ...
barplot(rbind(a,b,c,d,e))

すべてのサンプルのカウント値が同じではないため、グラフの値がずれていることがわかりました。たとえば、サンプル 2 に「1」の値が存在しない可能性があります。

これらの集計されたカウント データをプロットして、それらを視覚的に比較する最良の方法は何ですか?

4

1 に答える 1

1

再現可能なデータ:

x <- replicate(10, round(10 * rexp(2000, 10)))

お気づきのとおり、各サンプルの頻度表にはすべての値が含まれていない場合があります。

apply(x, 2, table)
## [[1]]

##   0   1   2   3   4   5   6   8 
## 771 798 274 104  37  14   1   1 

## [[2]]

##   0   1   2   3   4   5   6 
## 792 788 275  77  37  26   5    

## etc.

トリックは、各列をxx のすべての可能な値をそのレベルとして持つ因子に変換することです。

(y <- apply(x, 2, function(column) table(factor(column, levels = 0:9))))
##   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## 0  771  792  797  783  775  806  801  793  788   795
## 1  798  788  795  744  792  738  765  720  729   760
## 2  274  275  253  308  271  288  263  297  312   261
## 3  104   77   91  110  104  114  103  117  106   124
## 4   37   37   42   37   35   33   48   49   41    36
## 5   14   26   16    8   11   16   12   15   17    14
## 6    1    5    3    8    8    2    3    4    6     7
## 7    0    0    3    1    3    3    2    1    1     1
## 8    1    0    0    1    1    0    3    3    0     1
## 9    0    0    0    0    0    0    0    1    0     1

次に、棒グラフを描くことができます

barplot(y)
于 2013-09-04T13:26:04.360 に答える