Symfoware

Symfowareについての考察blog

R言語 ファイルからデータを読み込み、グラフを描画する

今まではデータをプログラム中に記載していたのですが、
実際はテキストファイルからデータを読み込んで処理すると思います。

テキストからデータを読み込む方法を調べてみました。
こちらを参考にしています。

40. ファイルからデータを読み込む


データ読み込みの確認



データの読み込みは簡単


  1. x <- read.table("ファイル名")



これだけです。


こんなサンプルデータを作成しました。
データ間はタブで区切られています。


# 社員名と給料(万円)の表
# 「#」から始まる行は自動的に読み飛ばされる模様
name salary
大竹 21
武宮 24
石田 26
坂田 26
加藤 30
藤沢 32
林 34
小林 37
依田 40
山下 130




data.txtという名前で保存し、読み込んでみます。


  1. x <- read.table("data.txt")
  2. print(x)




実行結果は以下のとおり。


# Rscript sample.R
     V1     V2
1 name salary
2 大竹     21
3 武宮     24
4 石田     26
5 坂田     26
6 加藤     30
7 藤沢     32
8 林     34
9 小林     37
10 依田     40
11 山下    130



ヘッダー行もデータとして扱われてしまいます。
こんな時はheader=Tを引数に指定します。


  1. x <- read.table("data.txt", header=T)
  2. print(x)




# Rscript sample.R
name salary
1 大竹     21
2 武宮     24
3 石田     26
4 坂田     26
5 加藤     30
6 藤沢     32
7 林     34
8 小林     37
9 依田     40
10 山下    130




綺麗にデータが読み込めました。







データ取得時のオプション



hearder=Tのようなオプションはこんな感じだそうです。

引数意味
sep = ""データとデータの区切り文字
skip = 0最初の行 から読み飛ばす行数
nrows = -1何行目まで読むか。負数はファイル末尾まで。
header = Fファイルの列名有無
comment.charコメント行を表す記号。デフォルトは「#」
row.names=NULL1 から始まる番号が行名として生成される。
row.names="列名"指定した列のデータが行名として使われる
row.names=列番号
row.names=文字型ベクトル行名の指定


また、読み込む対象がcsv形式のファイルを読み込む場合は
read.csvというラッパーを使用すると便利そうです。





読み込んだデータへのアクセス



読み込んだデータへのアクセスは


  1. x['列名']



で対象列全てのデータにアクセスできます。


  1. x <- read.table("data.txt", header=T)
  2. print(x['name'])





# Rscript sample.R
name
1 大竹
2 武宮
3 石田
4 坂田
5 加藤
6 藤沢
7    林
8 小林
9 依田
10 山下




ここでちょっとはまったのですが、この戻り値はデータフレームです。
ベクトルとして列の要素を取得したい場合は


  1. x[['name']]



のようにするか、


  1. x$'name'



とします。


  1. x <- read.table("data.txt", header=T)
  2. print(x[['name']])
  3. print('------------')
  4. print(x$'name')




# Rscript sample.R
[1] 大竹 武宮 石田 坂田 加藤 藤沢 林 小林 依田 山下
Levels: 依田 加藤 坂田 山下 小林 石田 大竹 藤沢 武宮 林
[1] "------------"
[1] 大竹 武宮 石田 坂田 加藤 藤沢 林 小林 依田 山下
Levels: 依田 加藤 坂田 山下 小林 石田 大竹 藤沢 武宮 林








グラフの描画



読み込んだ給与データを棒グラフにしてみます。


  1. x <- read.table("data.txt", header=T)
  2. png("image.png", width = 500, height = 300, pointsize = 12, bg = "white")
  3. # 棒グラフを表示
  4. # 戻り値は、各バーの座標位置
  5. #barplot(x[['salary']], names.arg=x[['name']], ylim=c(0, 150))
  6. barplot(x$'salary', names.arg=x$'name', ylim=c(0, 150))
  7. # グラフを囲む
  8. box("plot",lty=1)
  9. graphics.off()




できました。

484_01.png


R言語 掲載記事のまとめ
関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/10/26(日) 15:47:24|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<R言語 数式を描画する | ホーム | R言語 棒グラフと折れ線グラフの組み合わせ>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1510-0c85fc3f
この記事にトラックバックする(FC2ブログユーザー)