Ответ 1
Как насчет:
apply(your.matrix, 2, function(c)sum(c!=0))
Помогает ли это?
изменить
Еще лучше:
colSums(your.matrix != 0)
изменить 2:
Здесь мы идем с примером для ya:
> example = matrix(sample(c(0,0,0,100),size=70,replace=T),ncol=7)
> example
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 0 100 0 0 100 0 100
[2,] 100 0 0 0 0 0 100
[3,] 0 0 0 0 0 0 100
[4,] 0 100 0 0 0 0 0
[5,] 0 0 100 100 0 0 0
[6,] 0 0 0 100 0 0 0
[7,] 0 100 100 0 0 0 0
[8,] 100 0 0 0 0 0 0
[9,] 100 100 0 0 100 0 0
[10,] 0 0 0 0 0 100 0
> colSums(example != 0)
[1] 3 4 2 2 2 1 3
(в новом примере предыдущий пример со значениями "1" не был подходящим, чтобы показать, что мы суммируем количество ячеек, а не их содержимое)