Rで解析するためにはデータフレームを作成しなければ始まりません。
今回はその作成方法についてまとめて記録しておきます。
・データフレームの作り方
ベクトル
要素を(縦または横に)一列に並べたものをベクトルと言います。
ベクトルはRでは”c”という関数を使うことで生成することができます。
> data1<-c(1,2,3,4,5)
> data1
[1] 1 2 3 4 5
また、”rep”(繰り返し)や”seq”(連続したデータの生成)を使う方法でもベクトルを作ることができます。
rep(要素,回数) … 要素を指定した回数繰り返す。
> data2<-rep(要素,回数)
> data2
[1] 1 1 1 1 1 1 1 1
seq(始点,終点,間隔) … 始点から終点を指定した間隔で並べる。
> data3<-seq(1,7,2)
> data3
[1] 1 3 5 7
これらの二つを組み合わせて以下のようなことができます。
data4<-rep(seq(1,9,1),3)
> data4
[1] 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
つまり1から9を間隔1で並べたものを3回繰り返すという意味になります。

行列
縦と横に要素をまとめたものを行列と言います。
行列はRでは”matrix”という関数を使うことで生成することができます。
matrix(要素,行(横)の数,列(縦)の数)…要素を行の数と列の数で並べる
> data5<-matrix(1:12,nrow=4,ncol=3)
> data5
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
行(横)と列(縦)に名前を付ける場合はそれぞれ”rownames”、”colnames”を使用します。
rownames(対象の変数)=つけたい名前
colnames(対象の変数)=つけたい名前
> rownames(data5)<-c(“x1″,”x2″,”x3″,”x4”)
> colnames(data5)<-c(“a1″,”a2″,”a3”)
> data5
a1 a2 a3
x1 1 5 9
x2 2 6 10
x3 3 7 11
x4 4 8 12

また、作成したベクトルを組み合わせて行列にすることもできます。
そのための関数として”cbind”と”rbind”があります。
cbind(ベクトル1,ベクトル2・・・) … ベクトルを横に並べて行列にする
rbind(ベクトル1,ベクトル2・・・) … ベクトルを縦に並べて行列にする
> vector1<-rep(1:3,2)
> vector2<-seq(2,12,2)
> data6<-cbind(vector1,vector2)
> data6
vector1 vector2
[1,] 1 2
[2,] 2 4
[3,] 3 6
[4,] 1 8
[5,] 2 10
[6,] 3 12
> data7<-rbind(vector1,vector2)
> data7
[,1] [,2] [,3] [,4] [,5] [,6]
vector1 1 2 3 1 2 3
vector2 2 4 6 8 10 12
このようにしてひとつひとつ要素を組み立てていくことでデータフレームを作り上げることができます。

データフレームを直接作る
これらをいちいち組み立てていくのは大変です。
そこで”data.frame”という関数を使うことで一度に組み立てることができます。
data.frame(row.names=(“列の名前を指定”), 要素aの名前=c(a1,a2,a3・・・)+要素bの名前=c(b1,b2,b3・・・)+要素cの名前・・・)
> data8<-data.frame(row.names=c(“x”,”y”,”z”),要素a=c(1,2,3),要素b=c(4,5,6),要素c=c(7,8,9))
> data8
要素a 要素b 要素c
x 1 4 7
y 2 5 8
z 3 6 9
一度の入力でデータフレームを作ることができます。

・データフレームの読み込み方
実際はエクセルなどでまとめたデータを読み込む方法が多いと思います。
今回はファイルを読み込む方法とクリップボードにコピーしたものを読み込む方法を紹介します。
ファイルを読み込む方法
まず、読み込みたいファイルが格納されているフォルダに作業ディテクトリを設定します。
自分が使っているMac版のR(3.6.3) ではその他>作業ディテクトリの変更をクリックすることで設定できます。

ファイルを読み込むときは”read.table”という関数を利用します。
read.table(“読み込みたいファイル名”)read.tableに使われる引数として
- header=TRUE(TRUEにすると一番上の列が要素の名前になる)
- sep=””(データとデータを区切る文字を指定する)
などがあります。
例えばコンマ区切りのdata8.txtを一列目を要素の名前として読み込むなら
read.table(data8.txt”,header=TRUE,sep=”,”)
となります。
そのほかcsvを読み込むread.csv(“読み込みたいファイル名”)などがあります。
クリップボードにコピーしたものを読み込む方法
エクセルなどでまとめたデータフレームをコピーした状態で以下のコードを入力します
- Macの場合 data<-read.table(pine(“pbpaste”)
- Windowsの場合 data<-read. table (“clipboard”)
この場合headerはデフォルトでTRUEとなっています。
コメント