Unknown Region

プログラムでハマったエラーとその解決方法についての備忘録メモ

【R言語】read.csv()で読み込む際にヘッダにXが付与されるのを防ぐ

気軽に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.csvread.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

このままグラフの描写に利用する程度であれば問題なさそう。

ただし恐らくは何らかの理由でカラム名の数字始まりを不正と見做しているはずなので、思いがけずにどこかで不都合が出る可能性もあるので注意。

 

連絡先: plugout777★yahoo.co.jp (クローラー対策のため★を@に変更してください)