Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何在Stata中合并两个数据集,只保留重叠的变量?_Loops_Variables_Stata - Fatal编程技术网

Loops 如何在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

我试图在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 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
,请参见