通过将具有相同名称后缀的变量相乘来创建变量
Create variables by multiplying variables that have the same name suffix
我有一个如下所示的 Stata 数据集:
stock8201
stock8202
stock8203
immigrantshare8201
immigrantshare8202
immigrantshare8203
123
24
21
0.0004696
0.0001165
0.0016181
123
24
21
0.0004696
0.0001165
0.0016181
123243
24
21
0.0004696
0.0001165
0.0016181
我想要一个命令,为我创建三个变量,将第一个 stock8201 乘以 immigrantshare8201,并对其他变量执行相同的操作。我最后想要的 table 看起来像这样:
Predi8201
Predi8202
Predi8203
0.0577608
0.002796
0.0339801
0.0577608
0.002796
0.0339801
57.8749128
0.002796
0.0339801
例如:Predi8201
等于 stock8201*immigrantshare8201
forval j = 1/3 {
gen Predi820`j' = stock820`j' * immigrantshare820`j'
}
对于更大的变量集,您可能需要类似
的东西
foreach v of var stock* {
local suffix : subinstr local v "stock" ""
gen Predi`suffix' = `v' * immigrantshare`suffix'
}
您的问题暗示您正在以广泛的布局保存不同月份(1982 年 1 月、1982 年 2 月...)的数据。在 Stata 中,大多数事情在长布局中更容易,通常需要 reshape long
.
我有一个如下所示的 Stata 数据集:
stock8201 | stock8202 | stock8203 | immigrantshare8201 | immigrantshare8202 | immigrantshare8203 |
---|---|---|---|---|---|
123 | 24 | 21 | 0.0004696 | 0.0001165 | 0.0016181 |
123 | 24 | 21 | 0.0004696 | 0.0001165 | 0.0016181 |
123243 | 24 | 21 | 0.0004696 | 0.0001165 | 0.0016181 |
我想要一个命令,为我创建三个变量,将第一个 stock8201 乘以 immigrantshare8201,并对其他变量执行相同的操作。我最后想要的 table 看起来像这样:
Predi8201 | Predi8202 | Predi8203 |
---|---|---|
0.0577608 | 0.002796 | 0.0339801 |
0.0577608 | 0.002796 | 0.0339801 |
57.8749128 | 0.002796 | 0.0339801 |
例如:Predi8201
等于 stock8201*immigrantshare8201
forval j = 1/3 {
gen Predi820`j' = stock820`j' * immigrantshare820`j'
}
对于更大的变量集,您可能需要类似
的东西foreach v of var stock* {
local suffix : subinstr local v "stock" ""
gen Predi`suffix' = `v' * immigrantshare`suffix'
}
您的问题暗示您正在以广泛的布局保存不同月份(1982 年 1 月、1982 年 2 月...)的数据。在 Stata 中,大多数事情在长布局中更容易,通常需要 reshape long
.