Loops 如何在Stata中合并两个数据集,只保留重叠的变量?
我试图在Stata中组合两个数据集,比如Loops 如何在Stata中合并两个数据集,只保留重叠的变量?,loops,variables,stata,Loops,Variables,Stata,我试图在Stata中组合两个数据集,比如data1.dta和data2.dta,只保留重叠的变量,我想删除只存在于两个数据集中的一个中的所有变量 我的想法是用cfvar比较这两个数据集:使用返回列表我得到输出r(两者),r(仅一个)和r(仅两个)。现在我想使用输出r(oneonly)和r(twoonly)循环删除r(oneonly)和r(twoonly)中列出的所有变量,类似于: for each v of varlist ??how to define the varlist??{ drop
data1.dta
和data2.dta
,只保留重叠的变量,我想删除只存在于两个数据集中的一个中的所有变量
我的想法是用cfvar
比较这两个数据集:使用返回列表
我得到输出r(两者)
,r(仅一个)
和r(仅两个)
。现在我想使用输出r(oneonly)
和r(twoonly)
循环删除r(oneonly)
和r(twoonly)
中列出的所有变量,类似于:
for each v of varlist ??how to define the varlist??{ drop v }
我不知道有什么程序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'
然后需要将
与
数据2合并:语法将取决于充当标识符的变量。注意merge
的keepusing()
选项
我看不出这里需要一个循环 关于
帮助mmerge
,请参见