既存の関数を使おう!!
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"