首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多个匹配变量进行Stata合并

使用多个匹配变量进行Stata合并
EN

Stack Overflow用户
提问于 2016-12-15 06:30:38
回答 1查看 746关注 0票数 2

我在组合项目的数据集时遇到了困难。我们的主要数据集是由个人评委组织的。它是一个属性数据集。

代码语言:javascript
复制
judge
  j |  x |  y |  z
----|----|----|----
  1 | 2  | 3  |  4
  2 | 5  | 6  |  7 

第二个数据集是案例数据库。每个观察都是一个案例,法官可以出现在三个变量中的一个。

代码语言:javascript
复制
case
case | j1 | j2 | j3 | year
-----|----|----|----|-----
  1  |  1 |  2 |  3 | 2002
  2  |  2 |  3 |  1 | 1997

我们希望通过judge将案例数据库merge到属性数据库中。因此,对于j1j2j3中出现judge的每种情况,都会添加该情况的观察值,以创建如下所示的数据集。

代码语言:javascript
复制
 combined
  j |  x | y  | z  |  case |  year
 ---|----|----|----|-------|--------
  1 |  2 | 3  | 4  |   1   | 2002
  1 |  2 | 3  | 4  |   2   | 1997
  2 |  5 | 6  | 7  |   1   | 2002
  2 |  5 | 6  | 7  |   2   | 1997

我最好的猜测是使用

代码语言:javascript
复制
 rename j1 j
 merge 1:m j using case
 rename j j1
 rename j2 j
 merge 1:m j using case

但是,我不确定这是否会起作用,特别是合并数据集有三个可能的变量,其中可能会出现j标识。

EN

回答 1

Stack Overflow用户

发布于 2016-12-15 06:58:41

您的示例很清楚,但更好的做法是将它们表示为不需要工程编辑即可移除脚手架的代码。请参阅来自SSC的dataex (ssc inst dataex)。

我想这是reshape失踪的案例。

代码语言:javascript
复制
clear 
input   j   x   y   z
  1  2   3    4
  2  5   6    7 
end
save judge 

clear 
input case j1  j2  j3  year
  1    1   2   3  2002
  2    2   3   1  1997
end 

reshape long j , i(case) j(which) 

merge m:1 j using judge 

list

     +-------------------------------------------------------+
     | case   which   j   year   x   y   z            _merge |
     |-------------------------------------------------------|
  1. |    1       1   1   2002   2   3   4       matched (3) |
  2. |    2       3   1   1997   2   3   4       matched (3) |
  3. |    2       1   2   1997   5   6   7       matched (3) |
  4. |    1       2   2   2002   5   6   7       matched (3) |
  5. |    2       2   3   1997   .   .   .   master only (1) |
     |-------------------------------------------------------|
  6. |    1       3   3   2002   .   .   .   master only (1) |
     +-------------------------------------------------------+

drop if _merge < 3
list 

     +---------------------------------------------------+
     | case   which   j   year   x   y   z        _merge |
     |---------------------------------------------------|
  1. |    1       1   1   2002   2   3   4   matched (3) |
  2. |    2       3   1   1997   2   3   4   matched (3) |
  3. |    2       1   2   1997   5   6   7   matched (3) |
  4. |    1       2   2   2002   5   6   7   matched (3) |
     +---------------------------------------------------+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41153356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档