Если вы хотите, чтобы столбцы с ненулевыми элементами имели в виду, что они могут иметь нули, но не все строки являются нулями, тогда работает следующее:
mat<-matrix(rep(0,2*5),ncol=2)
mat[,1]=c(1,2,3,4,5)
sum(colSums(mat!=0)!=0)
#> [1] 1
Но если вы хотите найти столбец, которыйнет нулей, смотри ниже.Я делаю пример, чтобы проиллюстрировать это лучше:
mat2<-matrix(rep(0,4*5),ncol=4)
mat2[,1]=c(0,2,3,4,5)
mat2[,2]=c(1,2,3,4,5)
mat2[,3]=c(0,0,0,-1,1)
sum(colSums(mat2!=0)!=0) #count of non-zero columns
#> [1] 3
sum(colSums(mat2!=0)==nrow(mat2)) #count of columns with no zeros
#> [1] 1
Если вы хотите узнать, какие столбцы отличны от нуля, используйте which
вместо sum
:
which(colSums(mat2!=0)!=0) #non-zero columns
#> [1] 1 2 3
which(colSums(mat2!=0)==nrow(mat2)) #columns with no zeros
#> [1] 2