裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

文字列操作

2014年06月19日 | ブログラミング

http://d.hatena.ne.jp/dichika/20140618/p1
全角カッコの中にある全角数字を半角にして取り出したい」だが...

( )の中の数字は1文字という仕様なのかな?
数文字でもよいということにして,他のパッケージも使わずに,以下のようにすることもできる(警告メッセージが出るけど)。

as.numeric(chartr("0-9", "0-9", gsub("[()]", "", gsub(".*(([0-9]*?)).*", "\\1", smp))))

> smp = c("新しいファイル(1)","嫁", "ファイル(12)は", "(その3)", "(1)と(2)")

> smp %>% zen2han() %>% str_extract("(\\d)") %>% str_replace_all("(|)","")
[1] "1" NA  NA  NA  "1"

> as.numeric(chartr("0-9", "0-9", gsub("[()]", "", gsub(".*(([0-9]*?)).*", "\\1", smp))))
[1]  1 NA 12 NA  1
 警告メッセージ:
 強制変換により NA が生成されました  

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村