TRUEとFALSEをカウント

例えば

a<- c(0,4,5,3,20,0,0,2,8)

というベクトルがあったとして、この要素に0と等しいものがいくつあるか調べたい。

a == 0
[1]  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE

となるが、これを

[1]  TRUE FALSE
        3     6

的に返してくれる関数はないでしょうか。
なければ作るわなぁ…

TF<- function(vec,n){                    # vecは判定したいベクトル、nは真偽判定の数値
  TFresult<- vec == n
  TFcount<- c(0,0)                       # TRUE、FALSEの順
  for(i in 1:length(vec)){
    if(TFresult[i] == TRUE){
      TFcount[1]<- TFcount[1] + 1
    }else{
       TFcount[2]<- TFcount[2] + 1
       }
  }
  return(TFcount)
}

 
にしなさんからTRUEの性質を教えていただきました。ありがとうございます。

a<- c(0,4,5,3,20,0,0,2,8)
sum(a==0)

 
NKから別の方法を教えてもらった。

length(a[a==0])