カメヲラボ

主にプログラミングとお勉強全般について書いてます

Rプログラミング入門(2)

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

実際にデータ解析とかする場合、結構お手軽なCSV形式のデータを扱うと思うので、ここからはCSVに限定して進めていきます。

まず、以下のようなデータでファイル(sample2-1.csv)を作成します。

項目A,項目B,項目C,項目D
1,2,3,4
5,6,7,8
9,10,11,12

Excelとかで作っても良いです。


次に、このファイルを前回紹介したread.csv関数で読み込みます。

> read.csv("sample2-1.csv")

以下のような出力が得られれば成功です。

  項目A 項目B 項目C 項目D
1     1     2     3     4
2     5     6     7     8
3     9    10    11    12

ちゃんと項目名も読み込んでくれてるみたいですね、すばらしい。ちなみに、項目名の無いデータ(sample2-2.csv)

1,2,3,4
5,6,7,8
9,10,11,12

を与えると、

  X1 X2 X3 X4
1  5  6  7  8
2  9 10 11 12

のように、1行目のデータが勝手に項目名にされてしまいます。その場合は、以下の様に引数を指定します。

> read.csv(file="sample2-2.csv", header=FALSE )
  V1 V2 V3 V4
1  1  2  3  4
2  5  6  7  8
3  9 10 11 12

勝手にV1,V2,...と項目名が付くようです。


項目名付きの場合は、headerというパラメータをTRUE、項目名無しの場合はFALSEにしてやると良いです。

よく使いそうな関数1

順番は思いついた順なので、わりと適当です^^

c関数

リストを作ります。

> c( 1, 2, 3, 4, 5, 6 )

を実行すると

[1] 1 2 3 4 5 6

のようになります。
ちなみに、

> c( 1:6 )

としても同じ結果になります。連続値の場合はa:bのように書くと良いです。

matrix関数

データのリスト(1次元の配列)を、行列データに変換します。

matrix( リスト, 行数, 列数 )

とします。

> matrix( c( 1:6 ), 2, 3 )

とすれば、

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

のような結果になります。
入力にscan関数(Rプログラミング入門(1)参照)を使った場合は必須の関数です。

dim関数

行列データのサイズが得られます。次のlength関数との違いだけ知っていれば良いです。リストには使えません。行数・列数だけならncol,nrow関数というものもあります。

> dim( matrix( c( 1:6 ), 2, 3 ) )
[1] 2 3
> dim( c( 1:6 ) )
NULL
length関数データの総数が得られます。行列データだけでなくリストにも使えます。
> length( matrix( c( 1:6 ), 2, 3 ) )
[1] 6
> length( c( 1:6 ) )
[1] 6