Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • How to get multidrug resistance status?

    I have data like this
    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str11 ID1 double(s_ak_1 s_amp_1 s_amc_1 s_azm_1 s_caz_1)
    "aug1613779" . . . . .
    "aug1614427" . . . . .
    "aug1614416" . 1 . 2 .
    "aug1614778" . . 1 . .
    "aug1614893" 1 3 . 3 1
    end
    label values s_ak_1 s_ak_1
    label def s_ak_1 1 "sensative", modify
    label values s_amp_1 s_amp_1
    label def s_amp_1 1 "sensative", modify
    label def s_amp_1 3 "resistant", modify
    label values s_amc_1 s_amc_1
    label def s_amc_1 1 "sensative", modify
    label values s_azm_1 s_azm_1
    label def s_azm_1 2 "intermediate", modify
    label def s_azm_1 3 "resistant", modify
    label values s_caz_1 s_caz_1
    label def s_caz_1 1 "sensative", modify
    where 1=Sensitive, 2= Intermediate, 3= Resistant (Data label of s_ak_1 s_amp_1 s_amc_1 s_azm_1 s_caz_1)
    s_ak_1= Resistance status of amikacin (antibiotic)

    Now I want to generate a new variable "MDR" (multi drug resistance status) which will count number of resistance value across antibiotics. So MDR values look like following table
    MDR
    0
    0
    0
    0
    2
    How can I do this? Thanks in advance for your continuous effort in this forum.

  • #2
    Thanks for the data example. (For your future writing, note "sensitive".) You can use egen for this. Knowing how to do it with a loop over variables is even more worth knowing.



    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str11 ID1 double(s_ak_1 s_amp_1 s_amc_1 s_azm_1 s_caz_1)
    "aug1613779" . . . . .
    "aug1614427" . . . . .
    "aug1614416" . 1 . 2 .
    "aug1614778" . . 1 . .
    "aug1614893" 1 3 . 3 1
    end
    label values s_ak_1 s_ak_1
    label def s_ak_1 1 "sensitive", modify
    label values s_amp_1 s_amp_1
    label def s_amp_1 1 "sensitive", modify
    label def s_amp_1 3 "resistant", modify
    label values s_amc_1 s_amc_1
    label def s_amc_1 1 "sensitive", modify
    label values s_azm_1 s_azm_1
    label def s_azm_1 2 "intermediate", modify
    label def s_azm_1 3 "resistant", modify
    label values s_caz_1 s_caz_1
    label def s_caz_1 1 "sensitive", modify
    
    egen MDR = anycount(s_*), values(3) 
    
    gen MDR2 = 0 
    
    quietly foreach v of var s_* { 
        replace MDR2 = MDR2 + (`v' == 3)
    }
    
    list ID1 MDR*
    
         +-------------------------+
         |        ID1   MDR   MDR2 |
         |-------------------------|
      1. | aug1613779     0      0 |
      2. | aug1614427     0      0 |
      3. | aug1614416     0      0 |
      4. | aug1614778     0      0 |
      5. | aug1614893     2      2 |
         +-------------------------+

    Comment


    • #3
      Thanks for your precise and effective reply.

      Comment

      Working...
      X