我有两组数据,一组如下:
tran_id year buyername
1 2000 a
1 2000 b
2 2000 c
2 2000 d
。。。。。。
另一组如下:
tran_id year sellername
1 2000 e
1 2000 f
1 2000 g
2 2000 h
2 2000 i
。。。。。。
现在需要根据tran_id将数据合并,包括tran_id, year, buyername, sellername, 第一个表中的每一条记录都要和第二个表中的tran_id相同的所有记录对应,也就是说,tran_id=1时,应生成2*3条记录,tran_id=2时,应生成2*2条记录。由于两个表中tran_id 都不是唯一的,stata可以实现这样的操作吗?求大侠指导。
inp tran_id year str10 buyername
1 2000 a
1 2000 b
2 2000 c
2 2000 d
3 2000 j
end
sa "D:\data_b"
clear
inp tran_id year str10 buyername
1 2000 a
1 2000 b
2 2000 c
2 2000 d
end
sa "D:\data_b2"
clear
inp tran_id year str10 sellername
1 2000 e
1 2000 f
1 2000 g
2 2000 h
2 2000 i
end
sa "D:\data_s"
*上例只有一个观测值与您的举例不一样,指data_b,然data_b2是一样,
*注意,如果您tran_id【譬如3】在两个资料里,可能只出现一个。建议joinby加入option
*joinby的演练
use "D:\data_b", clear
joinby tran_id using "D:\data_s", unm(b)
sa "D:\data_joinby"
use "D:\data_b2", clear
joinby tran_id using "D:\data_s", unm(b)
sa "D:\data_joinby2"