我有一个示例数据集,其变量为date
,spx
(市场价格),trans_1
(股票1价格)和trans_2
(股票2价格): / p>
* Example generated by -dataex-. To install: ssc install dataex
clear
input int(date spx) double(trans_1 trans_2)
14610 100 1 1
14611 102 1.1 .9
14612 103 1.21 .81
14613 104 1.321 .729
end
format %tdnn/dd/CCYY date
我需要重新排列数据,以便得出三个变量:trans_id
,date
和trans_price
,其中数据集中的每个日期都存在每个股票ID,并且所有股票价格都合并在一起在stock_price
变量中。
预期结果:
date spx trans trans_id
1/1/2000 100 1 1
1/2/2000 102 1.1 1
1/3/2000 103 1.21 1
1/4/2000 104 1.321 1
1/1/2000 100 1 2
1/2/2000 102 .9 2
1/3/2000 103 .81 2
1/4/2000 104 .729 2
我已经通读过各种论坛,试图利用xpose
,merge
或append
命令,但是无法提出可能的解决方案。
答案 0 :(得分:1)
以下对我有用:
generate id = _n
reshape long trans_ , i(id) j(_j)
drop id _j
bysort date (spx): generate id = _n
sort id (date)
list, sepby(id)
+------------------------------+
| date spx trans_ id |
|------------------------------|
1. | 1/1/2000 100 1 1 |
2. | 1/2/2000 102 1.1 1 |
3. | 1/3/2000 103 1.21 1 |
4. | 1/4/2000 104 1.321 1 |
|------------------------------|
5. | 1/1/2000 100 1 2 |
6. | 1/2/2000 102 .9 2 |
7. | 1/3/2000 103 .81 2 |
8. | 1/4/2000 104 .729 2 |
+------------------------------+