我试图在Stata中组合两个数据集,比如说data1.dta
和data2.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 }
答案 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}}选项。
我看不到这里需要一个循环。