【问题标题】:Generating a new variable by selection from multiple variables通过从多个变量中选择生成新变量
【发布时间】:2014-02-12 13:28:10
【问题描述】:

我有一些关于疾病和诊断年龄的数据。每个参与者都被问及他们患有什么疾病以及在什么年龄被诊断出这种疾病。 有一组变量disease1-28 带有每种疾病的数字代码,另一组变量age1-28 带有诊断时的年龄(以年为单位)。疾病按照召回的顺序放置在连续的变量中;诊断年龄置于适当的年龄变量中。

我想为几种疾病中的每一种生成一个新变量,给出该疾病的诊断年龄:例如asthma_age_at_diagnosis

我可以在没有 28 个replace 语句的情况下执行此操作吗?

数据示例:

+-------------+----------+----------+----------+------+------+------+  
| Participant | Disease1 | Disease2 | Disease3 | Age1 | Age2 | Age3 |  
+-------------+----------+----------+----------+------+------+------+    
|           1 |      123 | 3        | .        |   30 | 2    | .    |  
|           2 |      122 | 123      | 5        |   23 | 51   | 44   |  
|           3 |        5 | .        | .        |   50 | .    | .    |  
+-------------+----------+----------+----------+------+------+------+  

【问题讨论】:

    标签: stata


    【解决方案1】:

    我给出一个一般性的提示,这种形式的问题没有您自己的任何代码通常被认为是 Stack Overflow 的题外话。尽管如此,这里的 Stata 用户仍然是回答 Stata 问题的人(惊喜),如果有趣且恰当,我们通常会放纵这样的问题。

    我建议使用不同的数据结构。使用您的示例数据

    clear 
    input Patient Disease1 Disease2 Disease3 Age1 Age2 Age3 
    1 123 3 . 30 2 . 
    2 122 123 5 23 51 44 
    3 5 . . 50 . . 
    end 
    

    你可以reshape

    reshape long Disease Age, i(Patient) j(Order)
    drop if missing(Disease)
    list, sep(0) 
    
       +--------------------------------+
       | Patient  Order   Disease   Age |
       |--------------------------------|
    1. |       1      1       123    30 |
    2. |       1      2         3     2 |
    3. |       2      1       122    23 |
    4. |       2      2       123    51 |
    5. |       2      3         5    44 |
    6. |       3      1         5    50 |
       +--------------------------------+
    

    使用此表单中的数据,您现在可以轻松回答很多问题。我不认为一大堆新变量会使许多分析变得更容易。另一种看待这一点的方式是,您暗示疾病的编码顺序是任意的。既然如此,将其连接到数据结构中是不明智的。即使顺序很重要,它仍然可以作为数据集的一部分访问(变量Order)。

    提示:如果您仍出于某些目的需要单独的变量,请查看separate

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 2014-02-11
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多