例えば
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])