如何在Stata中组合两个数据集,只保留重叠变量?

时间:2015-11-27 10:40:30

标签: loops variables stata

我试图在Stata中组合两个数据集,比如说data1.dtadata2.dta,只保留重叠变量,我想drop只存在的所有变量两个数据集中的一个。

我的想法是将两个数据集与cfvar进行比较:与return list我得到输出r(both)r(oneonly)r(twoonly)。现在,我想使用输出r(oneonly)r(twoonly)来循环drop r(oneonly)r(twoonly)中列出的所有变量,如:< / p>

for each v of varlist ??how to define the varlist??{ drop v }

1 个答案:

答案 0 :(得分:0)

我知道没有节目cfvar;也许你的意思是cfvars(SSC),这是我写的东西。但鉴于最新版本的Stata,这是多余的。你可以去

d using data1, varlist 
local v1 "`r(varlist)'" 
d using data2, varlist 
local v2 "`r(varlist)'" 
local both : list v1 & v2 
u data1 
keep `both' 

然后您需要merge data2:语法将取决于哪个变量充当标识符。请注意keepusing()的{​​{1}}选项。

我看不到这里需要一个循环。