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 が生成されました