気軽にRStudioを使ってグラフを吐き出そうと思ったら、思わぬところで引っかかったのでメモ。
R言語でCSVファイルを読み込む際にはread.csv()を利用するのが便利だ。
例: demo1.R
data <- read.csv('demo.csv', header=TRUE, row.names=1, encoding="UTF-8")
例:demo.csv
商品名,10月,11月,12月
商品A,100,110,120
商品B,110,110,100
商品C,120,100,110
CSVなので分かりにくいけれど、データのイメージとしては以下のような感じ。
数値については月毎の商品の売り上げ個数のようなものを想像して貰えば良い。
商品名 | 10月 | 11月 | 12月 |
---|---|---|---|
商品A | 100 | 110 | 120 |
商品B | 110 | 110 | 100 |
商品C | 120 | 100 | 110 |
さて、先ほどのdemo.csvをread.csv()で取り込むと次のようになる。
例: 取り込んだdataの出力
> data
X10月 X11月 X12月
商品A 100 110 120
商品B 110 110 100
商品C 120 100 110
見て分かるようにカラム名の先頭にXが付与されている。
これはカラム名を数字から始めることが許されていないため、問題を回避するために自動でXを付与してしまうということらしい。
これではグラフを生成する場合などでラベル名が変わってしまって困ることになる。
そこで以下のように[check.names=FALSE]を付与することで、この名前の不正チェックをスキップさせることができる。
例: demo2.R
data <- read.csv('demo.csv', header=TRUE, row.names=1, encoding="UTF-8", check.names=FALSE)
例: 取り込んだdataの出力
> data
10月 11月 12月
商品A 100 110 120
商品B 110 110 100
商品C 120 100 110
このままグラフの描写に利用する程度であれば問題なさそう。
ただし恐らくは何らかの理由でカラム名の数字始まりを不正と見做しているはずなので、思いがけずにどこかで不都合が出る可能性もあるので注意。