Announcement

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

  • Calculating an average that doesnt include missing values

    I have data that looks like this
    input str43 name float(dummyfrequency11 dummyfrequency12 dummyfrequency13 dummyfrequency14 dummyfrequency15)
    "Adur District Council" 0 0 . . .
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Allerdale Borough Council" 0 0 . 0 0
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 .
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 0
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 0
    "Amber Valley Borough Council" 1 1 . 1 0
    "Amber Valley Borough Council" 1 1 . 1 0
    "Amber Valley Borough Council" 1 1 . 1 .
    "Amber Valley Borough Council" 1 1 . 1 .
    "Amber Valley Borough Council" 1 1 . 1 1

    I would like to find the average for each row, however I dont want the average to include the missing values, nor include them in the n on the bottom.
    For example the values I want for the bottom 4 columns would be
    0.75,1,1, and 1.
    Doing this manually would take far too long as I have many more columns of dummies and many more rows.

    Any help is greatly appreciated! Thank You.

  • #2
    Sounds like you'll want to use egen, rowmean()

    Code:
    dataex name df11 df12 df13 df14 df15  //  Data shared via  -dataex-. To install: ssc install dataex
    clear
    input str43 name float(df11 df12 df13 df14 df15)
    "Adur District Council"        0 0 . . .
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Allerdale Borough Council"    0 0 . 0 0
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 .
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 0
    "Amber Valley Borough Council" 1 1 . 1 1
    "Amber Valley Borough Council" 1 1 . 1 0
    "Amber Valley Borough Council" 1 1 . 1 0
    "Amber Valley Borough Council" 1 1 . 1 0
    "Amber Valley Borough Council" 1 1 . 1 .
    "Amber Valley Borough Council" 1 1 . 1 .
    "Amber Valley Borough Council" 1 1 . 1 1
    end
    
    rename dummyfrequency* df*  // just shortening name so it will fit when I list it below
    egen row_avg = rowmean( df11-df15)
    
    . list, sepby(name)
    
         +---------------------------------------------------------------------------+
         |                         name   df11   df12   df13   df14   df15   row_avg |
         |---------------------------------------------------------------------------|
      1. |        Adur District Council      0      0      .      .      .         0 |
         |---------------------------------------------------------------------------|
      2. |    Allerdale Borough Council      0      0      .      0      0         0 |
      3. |    Allerdale Borough Council      0      0      .      0      0         0 |
      4. |    Allerdale Borough Council      0      0      .      0      0         0 |
      5. |    Allerdale Borough Council      0      0      .      0      0         0 |
      6. |    Allerdale Borough Council      0      0      .      0      0         0 |
      7. |    Allerdale Borough Council      0      0      .      0      0         0 |
      8. |    Allerdale Borough Council      0      0      .      0      0         0 |
      9. |    Allerdale Borough Council      0      0      .      0      0         0 |
     10. |    Allerdale Borough Council      0      0      .      0      0         0 |
     11. |    Allerdale Borough Council      0      0      .      0      0         0 |
     12. |    Allerdale Borough Council      0      0      .      0      0         0 |
     13. |    Allerdale Borough Council      0      0      .      0      0         0 |
         |---------------------------------------------------------------------------|
     14. | Amber Valley Borough Council      1      1      .      1      1         1 |
     15. | Amber Valley Borough Council      1      1      .      1      1         1 |
     16. | Amber Valley Borough Council      1      1      .      1      .         1 |
     17. | Amber Valley Borough Council      1      1      .      1      1         1 |
     18. | Amber Valley Borough Council      1      1      .      1      1         1 |
     19. | Amber Valley Borough Council      1      1      .      1      1         1 |
     20. | Amber Valley Borough Council      1      1      .      1      0       .75 |
     21. | Amber Valley Borough Council      1      1      .      1      1         1 |
     22. | Amber Valley Borough Council      1      1      .      1      0       .75 |
     23. | Amber Valley Borough Council      1      1      .      1      0       .75 |
     24. | Amber Valley Borough Council      1      1      .      1      0       .75 |
     25. | Amber Valley Borough Council      1      1      .      1      .         1 |
     26. | Amber Valley Borough Council      1      1      .      1      .         1 |
     27. | Amber Valley Borough Council      1      1      .      1      1         1 |
         +---------------------------------------------------------------------------+

    Comment

    Working...
    X