データをテキストで直打ちしてベクトルにするのも慣れればなんてことはないですが,それでもデータの入力・管理はExcelやCalcのような表計算ソフトのほうがやりやすいと思います.ここでは,データをExcelやCalcからRへ引っ張ってくる方法を説明します. *データフレームの作成 Rで作成することのできるデータの構造には、ベクトルのほか[[行列]]、[[配列]]、これらを組み合わせた[[リスト]]などがありますが、まずはExcel形式と親和性の高いデータフレームについて説明します。データフレームはRの標準的なデータ構造ですから、ベクトルとデータフレームさえ知っていればかなり色々なことができるようになります。 データフレームは同じ長さのベクトルを複数個集めたものだと考えるとわかり易いと思います。データフレームはdata.frame()関数により作成します。引数としては同じ長さのベクトルを与えます。 > name <- c("a", "b", "c", "d", "e", "f") > point <- c(1.0, 1.5, 2.0, 1.1, 1.3, 0.7) > rate <- c("C", "A", "A", "B", "B", "B") > data.frame(name, point, rate) name point rate 1 a 1.0 C 2 b 1.5 A 3 c 2.0 A 4 d 1.1 B 5 e 1.3 B 6 f 0.7 B ここでは、長さ6のベクトル3つをまとめてデータフレームを作りました。上の例のではベクトルは最初にオブジェクトに格納しましたが、必ずしもこの手順に従う必要はありません。次のように直接data.frame()関数の中で指定することも可能です。 > data.frame( + name = c("a", "b", "c", "d", "e", "f"), + point= c(1.0, 1.5, 2.0, 1.1, 1.3, 0.7), + rate = c("C", "A", "A", "B", "B", "B") + ) name point rate 1 a 1.0 C 2 b 1.5 A 3 c 2.0 A 4 d 1.1 B 5 e 1.3 B 6 f 0.7 B ここでは「name=...」などとしてベクトルの名前を指定しましたが、指定しなかった場合は入力した命令に応じて自動で名前がつきます。ただしデータの参照の際などに困ることがありますから、名前を指定する、もしくはあらかじめオブジェクトにしたベクトルを利用してデータフレームを作成するようにしましょう。 > data.frame(1:3,2:4,3:5) X1.3 X2.4 X3.5 1 1 2 3 2 2 3 4 3 3 4 5 ---- *エクセルからデータを持ってくる データフレームのデータの並び方は表計算ソフトっぽいです。データ入力は表計算で行って、そいつをパパっとRに持ってきて統計処理やらなにやらができたら便利ですね。Rにはそういった要望にこたえるためのread.○○○()という一連の関数があります。クリップボード(Windowsとかでコピーのコマンド[Ctrl+Cとか]を実行したときに、データが一時的に収納される場所)へコピーしたExcel、またはオープンオフィスのCalcのデータをRへ移すには、read.delim()関数を使います。例えば、Excel上で次のような形のデータがあったとしましょう。 |動物|頭数|サイズ| |ネコ|100|small| |シカ|10|middle| |シロナガスクジラ|1|ultimate|