論理の流刑地

地獄の底を、爆笑しながら闊歩する

【R備忘】既存のテキストファイルの文字コードをUTF8からShift-JISに変換する関数

備忘。たぶんすごい基礎的なことだと思うんだけど、あんまり日本語情報がない気がしたんで。
まぁテキストエディタ文字コード変更して保存しなおせばええやん、って話ではあるんだが、Rだけでなるべく処理は完結したい。

以下みたいな関数をつくっておくとよい。

utf_to_sjis <- function( dir_chr , file_chr ){
  old_path <- paste0( dir_chr , file_chr) #旧ファイル名を取得する
  new_path <- gsub( ".txt","_s.txt",old_path)  #新しいファイル名をつくる
  cont_utf <- readLines( old_path, encoding = "UTF8") #UTF-8でファイル内容を
  f_link <- file( new_path, encoding="SJIS") #ファイルリンクをSJISで作成
  write( cont_utf , file=f_link) #新ファイルに内容を書き込む
  close(f_link) #connectionをclose
  file.remove( old_path) #旧ファイルをdelete
  file.rename( from = new_path , to = old_path) #新ファイルを旧ファイル名に替える
} #dir

#実行例
utf_to_sjis( "./Document/",  "test1.txt")

参考にしたURLは以下。

  1. R: 文字コードを指定してのファイル出力 - Research and Study Notes of Rabbi Zakki
  2. r - RMeCabでUTF-8で書かれたファイルを扱う方法 - スタック・オーバーフロー



yonige -アボカド-【Official Video】

Enjoy!!