[R]文字コードを指定してCSVファイルを読み込む
read.csv関数を使う。その際、fileEncodingオプションに文字コードを指定する。シフトJIS(CP932)であれば「CP932」を、UTF-8であれば「UTF-8」を指定する。特に指定をしないと、今の環境のロケールの文字コードで読み込む。指定に誤りがあると、エラーが発生する。
以下は、以下のテキストをそれぞれシフトJIS(CP932)でtextcp932.csv、UTF-8でtextutf8.csvと保存をして、それぞれ読み込ませた例。
no,姓,名
1,中野,一花
2,中野,二乃
実行結果。
> Sys.getlocale()
[1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"
> dtf <- read.csv("textcp932.csv")
> print(dtf)
no 姓 名
1 1 中野 一花
2 2 中野 二乃
> dtf <- read.csv("textcp932.csv", fileEncoding = "CP932")
> print(dtf)
no 姓 名
1 1 中野 一花
2 2 中野 二乃
> dtf <- read.csv("textutf8.csv")
make.names(col.names, unique = TRUE) でエラー:
2 は不正なマルチバイト文字です
> dtf <- read.csv("textcp932.csv", fileEncoding = "CP932")
> print(dtf)
no 姓 名
1 1 中野 一花
2 2 中野 二乃