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になると、違う行になる。