トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

BugTrack-R備忘録/1

R備忘録 /状態空間モデリング/donlp2/その他のメモ

R備忘録 - 記事一覧

【%in%】で正規表現を使う

  • 投稿者: みゅ
  • カテゴリ: なし
  • 優先度: 普通
  • 状態: 完了
  • 日時: 2008年06月20日 12時44分58秒

内容

【%in%】で正規表現を使いたい

%in%は

> get("%in%")
function (x, table)
match(x, table, nomatch = 0) > 0

という定義

  • 数値
> (1:6) %in% 2
[1] FALSE  TRUE FALSE FALSE FALSE FALSE
  • 文字列
> letters
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
> letters %in% c("a","y")
 [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[25]  TRUE FALSE

このままでは正規表現が使えないので

"%inR%" <- function(x, pattern) match(1:length(x), grep(pattern,x), nomatch=0) > 0

で、どうかな

> letters %inR% "a|y"
 [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[25]  TRUE FALSE

コメント