2015-11-27 33 views
0

我想兩個數據集相結合,說data1.dtadata2.dta,在Stata,只保留重疊的變量,我想drop只存在兩個數據集之一的所有變量。如何結合Stata中的兩個數據集只保留重疊變量?

我的想法是這兩個數據集cfvar比較:與return list我得到的輸出r(both)r(oneonly)r(twoonly)。現在我想使用的輸出r(oneonly)r(twoonly)爲一個循環,以drop了在r(oneonly)r(twoonly)列出的所有變量,像:

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

'help mmerge'怎麼樣? – radek

+0

另請參閱http://www.statalist.org/forums/forum/general-stata-discussion/general/1318187-how-to-combine-two-datasets-keeping-only-overlapping-variables –

回答

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' 

然後,你需要mergedata2:語法將取決於變量(一個或多個)作爲標識符。請注意0​​的keepusing()選項。

我看不到這裏需要循環。

相關問題