首页 文章

Stata的 . 如何拆分观察?

提问于
浏览
4

我的数据集中的一些观察结果需要分成两个或三个不同的观察结果 . 例如以下观察:

region  income   gdp   other
North   120      450   50

我需要将 the same values 分成三个观察所有变量,除了像这样的区域:

region  income   gdp   other
IL      120      450   50
MI      120      450   50
IN      120      450   50

我需要这样的东西:

if (region == "North") {
//create three new observations and delete the old one
}

Stata可以吗?

1 回答

  • 4

    从你的例子中很难解决这里的一般问题 . 注意

    if region == "North" { 
          <code>
    }
    

    不像你期望的那样工作,因为它相当于

    if region[1] == "North" { 
          <code>
    }
    

    并且是一个只有一次的分支 . 这在http://www.stata.com/support/faqs/programming/if-command-versus-if-qualifier/记录

    这是合法的:

    expand 3 if region == "North"
    

    但你需要一个接一个地替换 .

    (稍后)一个疯狂的猜测是你正在继续Stata. How to match values in 1:m relationship?并试图重新发明 merge . 我只能说,对于经验丰富的Stata程序员来说,这将是一个重大项目 .

    (仍然以后)

    gen long obsid = _n 
     gen state = "" 
     gen isnorth = region == "North" 
     expand 3 if isnorth 
     bysort obsid : replace state = "IL" if isnorth & _n == 1 
     by obsid : replace state = "MI" if isnorth & _n == 2
     by obsid : replace state = "IN" if isnorth & _n == 3
    

相关问题