R には CSV ファイルを読み込むための関数として、read.csv()
と read.csv2()
の 2 つの関数があります。
これらの違いは何なのでしょうか?
違いを調べたところ、ヨーロッパには小数点をカンマで表す地域があり、それらの地域では CSV のフォーマットがそもそも違い、ヨーロッパ式の CSV を読み込むための関数が read.csv2()
なのだそうです。
日本で一般的な CSV フォーマットは、区切り文字がカンマですが、小数点をカンマで表す地域では、区切り文字がセミコロンになります。
read.csv()
と read.csv2()
の違いは、それぞれの関数の中身を見るとわかりやすいです。
read.csv()の中身
read.table(file, header = TRUE, sep = ",", quote = "\"",
dec = ".", fill = TRUE, comment.char = "", ...)
read.csv2()の中身
read.table(file, header = TRUE, sep = ";", quote = "\"",
dec = ",", fill = TRUE, comment.char = "", ...)
sep
パラメータ(区切り文字)と dec
パラメータ(小数点文字)が違うだけだということがわかります。
それでは実際にやって確かめてみましょう。
test.csv
A,B,C
3.1,4.1,5.9
2.6,5.3,5.8
9.7,9.3,2.3
R
read.csv("test.csv")
結果
A B C
1 3.1 4.1 5.9
2 2.6 5.3 5.8
3 9.7 9.3 2.3
ヨーロッパ式。
test2.csv
A;B;C
3,1;4,1;5,9
2,6;5,3;5,8
9,7;9,3;2,3
R
read.csv2("test2.csv")
結果
A B C
1 3.1 4.1 5.9
2 2.6 5.3 5.8
3 9.7 9.3 2.3
確かにそのようですね。
以上です。
参考
Difference between read.csv() and read.csv2() in R - Stack Overflow