裏 RjpWiki

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

全角数字列を半角数字列に変換する

2012年02月24日 | ブログラミング

既存の関数を使おう!!

 

chartr という関数が便利。

> chartr("0123456789", "0123456789", "3450246813579")
[1] "3450246813579"

============= 昔の記事 ==============

どこかにあったプログラムは Windows 用で,encoding="cp932" を仮定したものだったので,汎用関数を書いてみた。 遅いかも知れないけど,こんな関数,多少時間がかかろうがなにだろうが,問題ない。 動けばよいのだから,凝る必要もない。アルファベットや記号も変換できるようにしてもよいなあ。

Zen2Han <- function(str) {
    Zen <- c("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
    Han <- c("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
    str <- unlist(strsplit(str, ""))
    result <- character(length(str))
    for (i in seq_along(str)) {
        for (j in 1:10) {
            if (str[i] == Zen[j]) {
                result[i] <- Han[j]
                break
            }
        }
    }
    return(paste(result, collapse = ""))
}
Zen2Han("1234567890")
Zen2Han("2184")

実行例

> Zen2Han("1234567890")
[1] "1234567890"
> Zen2Han("2184")
[1] "2184"

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

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

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