アメリエフのブログ

Amelieff Staff Blog

続・Rでgrep

以前、Rのgrep()についての記事で、grep()は文字列のベクトルにのみ使えるとご紹介しましたが、今回はマトリクスやデータフレームではどうしたらよいか?という記事です。

例として以下のような文字列のマトリクスを用意しました。
1列目が季節、2列目が英語の月名の12行の文字列のマトリクスです。
> monthly
  season month
[1,] "winter" "January"
[2,] "winter" "February"
[3,] "spring" "March"
[4,] "spring" "April"
[5,] "spring" "May"
[6,] "summer" "June"
[7,] "summer" "July"
[8,] "summer" "August"
[9,] "autumn" "September"
[10,] "autumn" "October"
[11,] "autumn" "November"
[12,] "winter" "December"


さて突然ですが、牡蠣はお好きでしょうか?
嘘か本当か、牡蠣はrのつかない月に食べてはいけないと言われています。
そこで、用意したマトリクスから、牡蠣を食べてはいけない月を抜き出してみようと思います。
まず、月名のベクトル、つまりマトリクスの2列目のみを取得します。
> monthly[,2]
[1] "January" "February" "March" "April"
[5] "May" "June" "July" "August"
[9] "September" "October" "November" "December"


さっそく、このベクトルからrのつく月をgrep()で抜き出しましょう。