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