> a<-sample(rep(0:5,20),110)
> b<-matrix(a,ncol=10)
> b
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 3 5 3 2 3 0 0 1 1 5
[2,] 2 3 4 3 2 3 2 1 3 3
[3,] 3 5 1 3 0 2 0 4 1 5
[4,] 5 4 0 4 0 5 0 1 4 0
[5,] 0 1 3 1 4 0 4 5 3 2
[6,] 0 2 4 5 0 5 1 0 1 1
[7,] 4 3 3 4 3 2 3 4 5 1
[8,] 1 0 2 4 5 2 1 2 1 5
[9,] 4 2 4 4 1 5 3 0 2 4
[10,] 0 5 2 2 1 5 2 4 4 3
[11,] 1 5 0 0 2 5 5 1 5 2
> d<-apply(b,2,function(x) sum(x!=0))
> d
[1] 8 10 9 10 8 9 8 9 11 10
f<-matrix(0,ncol=10,nrow=5)
> for(i in 1:10){
+ for(j in 1:5){
+ f[j,i]<-sum(b[,i]==j)
+ }
+ }
> f
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 2 1 1 1 2 0 2 4 4 2
[2,] 1 2 2 2 2 3 2 1 1 2
[3,] 2 2 3 2 2 1 2 0 2 2
[4,] 2 1 3 4 1 0 1 3 2 1
[5,] 1 4 0 1 1 5 1 1 2 3
> sweep(f,2,d,"/")
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 0.250 0.1 0.1111111 0.1 0.250 0.0000000 0.250 0.4444444 0.36363636
[2,] 0.125 0.2 0.2222222 0.2 0.250 0.3333333 0.250 0.1111111 0.09090909
[3,] 0.250 0.2 0.3333333 0.2 0.250 0.1111111 0.250 0.0000000 0.18181818
[4,] 0.250 0.1 0.3333333 0.4 0.125 0.0000000 0.125 0.3333333 0.18181818
[5,] 0.125 0.4 0.0000000 0.1 0.125 0.5555556 0.125 0.1111111 0.18181818
[,10]
[1,] 0.2
[2,] 0.2
[3,] 0.2
[4,] 0.1
[5,] 0.3