【问题标题】:How can I create a new variable that is based on a relational column in Stata?如何创建基于 Stata 中关系列的新变量?
【发布时间】:2021-03-04 00:13:13
【问题描述】:

我的数据集是长格式的面板数据,列:id、var1、syear、partner_id

var1 是与具有相应 id 的人相关的兴趣值

partner_id 是由 id 定义的人的伴侣(例如妻子或丈夫)的 ID

现在我想创建一个新变量 var2,它获取每个 id 和年份的人的合作伙伴的值(来自 var1)。

将以下建议的代码用于非面板数据时(感谢@Nick-Cox) var2 结果如下:

但我需要它是这样的:

由于我之前没有任何 Stata 经验,我将非常感谢您的帮助!

所以这里是简化的数据即代码(如果这很重要:在我的原始数据集中,多年来有更多的年份,有时还有不同的合作伙伴以及缺失;例如,当有一年没有合作伙伴时):

id syear var1 partner_id
1 2000 1000 2 
1 2001 2000 2
2 2000 3000 1
2 2001 4000 1 

【问题讨论】:

    标签: stata


    【解决方案1】:

    考虑一下您首次发布的数据和问题的这种渲染(注意将数据呈现为图像不如将数据呈现为代码有用):

    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input float(id var1 partner_id var2)
    1  5000 4  3000
    2  2000 1  5000
    3  1000 5 10000
    4  3000 2  2000
    5 10000 3  1000
    end
    
    gen wanted = var1[partner_id]
    
    assert wanted == var2
    

    编辑现在考虑为您的修改数据提供此解决方案。修改后的数据示例可能看似简单,只有两个标识符,它们是彼此的伙伴,简单的代码就足够了。但是,我编写了更通用的代码。

    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input byte id int syear float var1 byte partner_id
    1 2000 1000 2
    1 2001 2000 2
    2 2000 3000 1
    2 2001 4000 1
    end
    
    save orig, replace 
    
    keep id var1 syear 
    rename (id var1) (partner_id wanted)
    merge 1:1 partner_id syear using orig
    
    sort id syear 
    
    list 
    
         +-----------------------------------------------------+
         | partne~d   syear   wanted   id   var1        _merge |
         |-----------------------------------------------------|
      1. |        2    2000     3000    1   1000   matched (3) |
      2. |        2    2001     4000    1   2000   matched (3) |
      3. |        1    2000     1000    2   3000   matched (3) |
      4. |        1    2001     2000    2   4000   matched (3) |
         +-----------------------------------------------------+
    

    【讨论】:

    • 这很有道理,谢谢!!!最后一个问题:您的意思可能是:rename (id partner_id) (var1 wanted) (?)
    • 否;我的意思是我写的。
    猜你喜欢
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 2018-06-05
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    相关资源
    最近更新 更多