求めない で 生きていく

なんとなく書いてみてるブログ

Rのmergeメモ

Rでmergeするときに、

 

たとえば

・2015年度のデータと2016年度のデータがある。

・それらは列は同じだけど、主キーになる要素の数が異なる。

 

2015年度のデータ(2015data)

name,class,data1,data2

a,english,2,3

b,english,1,3

c,japanese,5,7

 

2016年度のデータ(2016data)

name,class,data1,data2

a,english,2,1

b,english,2,1

c,japanese,5,7

d,spanish,7,8

 

nameが主キーね。年度をまたいで、学生の数が増えたときみたいなデータ。

 

この場合は

merge(2015data,2016data,by=name)

ってやりたくなるけど、classも行が増えてしまうので、

 

merge(2015data,2016data,all=T,by=c("name","class"))

 

ってする。

すると、

name,class,2015.data1,2015.data2,2016.data1,2016.data

a,english,2,3,2,1

b,english,1,3,2,1

c,japanese,5,7,5,7

d,spanish,n/a,n/a,7.8

 

ってできる。

なお、aさんが2016年度にjapaneseになると、違う行になる。