回复 第2楼 的 nuomin:我试过merge,请看下面的结果:
</p>
<p>> aa=data.frame(year=c(1993,1994,1993,1994),region=c('北京','北京','上海','上海'))<br />
> aa<br />
year region<br />
1 1993 北京<br />
2 1994 北京<br />
3 1993 上海<br />
4 1994 上海<br />
> tt=data.frame(year=c(1993,1993,1994,1994),name=c('beijing','shanghai','beijing','shanghai'))<br />
> tt<br />
year name<br />
1 1993 beijing<br />
2 1993 shanghai<br />
3 1994 beijing<br />
4 1994 shanghai<br />
> saa=aa[order(aa$year),]<br />
> saa<br />
year region<br />
1 1993 北京<br />
3 1993 上海<br />
2 1994 北京<br />
4 1994 上海<br />
> merge(aa,tt,bt='year')<br />
year region name<br />
1 1993 北京 beijing<br />
2 1993 北京 shanghai<br />
3 1993 上海 beijing<br />
4 1993 上海 shanghai<br />
5 1994 北京 beijing<br />
6 1994 北京 shanghai<br />
7 1994 上海 beijing<br />
8 1994 上海 shanghai<br />
> merge(saa,tt,by='year')<br />
year region name<br />
1 1993 北京 beijing<br />
2 1993 北京 shanghai<br />
3 1993 上海 beijing<br />
4 1993 上海 shanghai<br />
5 1994 北京 beijing<br />
6 1994 北京 shanghai<br />
7 1994 上海 beijing<br />
8 1994 上海 shanghai<br />
> merge(saa,tt,by='year',sort=FALSE)<br />
year region name<br />
1 1993 北京 beijing<br />
2 1993 北京 shanghai<br />
3 1993 上海 beijing<br />
4 1993 上海 shanghai<br />
5 1994 北京 beijing<br />
6 1994 北京 shanghai<br />
7 1994 上海 beijing<br />
8 1994 上海 shanghai</p>
<p>
而我期望的结果是:
<br />
year region name<br />
1 1993 北京 beijing<br />
3 1993 上海 shanghai<br />
2 1994 北京 beijing<br />
4 1994 上海 shanghai<br />
</p>