Rでベクトルの要素を別の集合の要素と比較する のバックアップ(No.1) - アールメカブ

アールメカブ


Rでベクトルの要素を別の集合の要素と比較する のバックアップ(No.1)


日録

たとえば,ある列に日本語文字列を含むデータフレームがあるとして,その列の要素がある種烏合にマッチしていれば 1,そうでなければ 0 を返すという処理を,for ではなく,apply 族を使って実行したいとする.

# こんなデータフレーム
unique(dat1$gobi) # 語尾を一通り見てみる
[1] "ですか"       "ますか"       "んか"         "っすか"       "ていい"   ...

気持ちとしては

dat1$not <- ifelse( dat1[dat1$gobi == "んか" | 
                          dat1$gobi == "くれん"| 
                          dat1$gobi == "くれない"| 
                          dat1$gobi == "くれへん"| 
                          dat1$gobi == "もらえへん", "ID"]), 
       1, 0)

あるいは

dat1$not <- ifelse(any(dat1$gobi 
   %in% c("くれん", "くれない", "くれへん", "もらえへん")), 1,0)
sum(dat1$not)

で実行されてほしいのだが,この場合,最初の五つのデータ1:5について,それぞれ条件の五つの要素と一対一に比較し,データの6-10では,再び条件の頭の要素1:5 を一対一に調べるということをやってしまう.