GAMILOG
出張族が見つけたいろんなモノやコト

[R言語]変数の型とデータセット

一応ITエンジニアのガミです。

前回の記事の続きで、今回はR言語の変数の型とデータセットについてのお話です。

 (前回記事)

 

 

Rでは、数値や、文字列、真偽値などのデータをベクトルや、データフレームなどのデータの形式にして扱います。

ですので、一般のプログラミング言語のように、変数の型よりもデータの形式の方が重要であると思います。

ですので、変数の型はサラッと流したいと思います。

 

なおここからの説明ではスクリプトファイルの形で表示します。

見やすいからです。

スクリプトの内容をコンソールに手で打っても同様の動きになります。

 

数値、文字列、真偽値

一般的なプログラミング言語と同じで数値型、文字列型を扱うことができます。

変数に代入する際に数値を入れるとその変数は数値として、文字列として入れると文字列として振る舞います。

 

 

ダブルクォーテーションで囲むと文字列です。

簡単ですね。

 

その他にも他のプログラミング言語と同様に真偽値でTRUE,FALSEを扱えます。

これらのデータを以降で説明するデータ形式にしてRでは扱います。

 

ベクトル

ベクトルとは、1行もしくは1列のデータセットです。

それぞれ格納するデータを指定して配列を作ることができます。

 

こうすることで数値のベクトルを作成することができました。

 

また文字列のベクトルを作成する場合には変数の代入と同じようにダブルクォーテーションで囲んでベクトルを作成します。

 

行列

行列は2次元の配列です。

いくつか作り方はありますが、一般的な方法はベクトルを行列に変換する方法になります。

行列を作っておいて、それに対して行数、列数を指示します。

 

こうすることで行列ができました。

 

また、同様に行ごと、列ごとのベクトルデータをくっつけて行列を作ることもできます。

その際には rbind、cbind関数を使って定義します。

 

値の編集

行列の各要素にはインデックスを使ってアクセスすることができます。

行列[行のインデックス,列のインデックス]

です。

どちらかをブランクにするとその行、列全てのデータを取得できます。

また、ベクトルでアクセスすると飛び飛びにアクセスすることもできます。

 

コンソールにて、いろいろなアクセス方法にてアクセスした結果をここに載せておきますので参考にしてください。

 

f:id:gami_bookmark:20161206132323j:plain

 

もちろんそれぞれのデータに対して代入もできます。

 

エディタを使った値の編集

Rではデータ編集エディタにて値を編集することができます。

edit(変数)

とコマンドすると変数の中身を編集エディタにて表示します。

f:id:gami_bookmark:20161206132927j:plain

このエディタはエクセルのような操作でデータを編集できます。

編集後に編集結果を保存したい場合には、edit()の戻り値を変数にいれましょう。

>mat2 <- edit(mat)

 

変数に入れずに編集結果を保存したい場合には、fix()コマンドを利用します。

fix(mat)

 

リスト

ベクトルや行列は同じ型のデータのみ扱えるが、リストは異なるデータ型を扱うことができます。

 

それぞれの要素へはインデックスを使ってアクセスします。

[](大カッコ)を幾つか使ってアクセスすることになりますので、わかりづらいですね。

こんな感じです。

f:id:gami_bookmark:20161206133942j:plain

 

データフレーム

各列ごとにデータ型を変更し、ラベルを持たせることができます。

いわゆるエクセルなどの表計算ソフトで表を作るときの感覚に近いですね。

 

行列のようにインデックスでもアクセスできますが、$を使ってラベルでアクセスするとアクセス性が高くなります。

f:id:gami_bookmark:20161206135006j:plain

 

ここまでの例では、手でdata.frame関数でデータフレームを作成しましたが、一般的にはCSVファイルなどの外部ファイルを活用することになります。

CSV読み込みでデータフレームを作成

まずはCSVファイルを作成しておきます。

今回はこんな感じ。(input.csv

f:id:gami_bookmark:20161206141557j:plain

※実際にはもっとデータがあります。

 

このCSVファイルを読み込みます。

 

 

こんな感じで読み込みます。

read.tableのパラメータは

"input.csv":ファイル名

header=TRUE:1行目がヘッダかどうか

sep=",":セパレータ。今回はカンマ

で設定しています。

 

まだまだパラメータはありますので、ヘルプを参照ください。

こうすることでデータフレームを作成することができます。