Announcement

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

  • Manipulate data

    Hello, I greet you and request your assistance. I need to create 4 new columns named 'SI', 'NO', 'VB', and 'VN', and for each observation, the respective value of votes from 2023 that it has alongside. I hope you can help me with


    Comuna_x Circunscripción electoral Local Mesa Opciones Votos2023 Electores_x Votos2022
    0 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 67 SI 154 400 82
    1 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 67 NO 163 400 231
    2 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 67 VB 4 400 1
    3 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 67 VN 14 400 10
    4 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 66 SI 142 400 82
    5 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 66 NO 168 400 273
    6 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 66 VB 4 400 0
    7 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 66 VN 11 400 5
    8 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 65 SI 137 400 80
    9 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 65 NO 181 400 242
    10 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 65 VB 2 400 2
    11 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 65 VN 10 400 4
    12 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 64 SI 135 400 95
    13 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 64 NO 144 400 244
    14 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 64 VB 2 400 2
    15 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 64 VN 55 400 10
    16 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 63 SI 112 400 89
    17 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 63 NO 178 400 252
    18 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 63 VB 7 400 1
    19 ALTO HOSPICIO ALTO HOSPICIO ANEXO DE COLEGIO SAN ANTONIO DE MATILLA 63 VN 21 400 5
    20 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 81 SI 145 400 86
    21 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 81 NO 159 400 238
    22 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 81 VB 6 400 1
    23 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 81 VN 13 400 10
    24 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 80 SI 147 400 88
    25 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 80 NO 152 400 246
    26 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 80 VB 8 400 3
    27 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 80 VN 13 400 3
    28 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 79 SI 149 400 75
    29 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 79 NO 167 400 261
    30 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 79 VB 3 400 1
    31 ALTO HOSPICIO ALTO HOSPICIO COLEGIO CATOLICO NAZARET 79 VN 12 400 5


  • #2
    Hello. Going forward, to better assist you, please include the code to generate your database using dataex (see the forum rules). If I've understood correctly what you want, it can be done with the following code:

    Code:
    input n str30 comuna_x str30 circunscripciónelectoral str100 local mesa str4 opciones votos2023 electores_x votos2022
    0    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    67    "SI"    154    400    82
    1    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    67    "NO"    163    400    231
    2    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    67    "VB"    4    400    1
    3    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    67    "VN"    14    400    10
    4    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    66    "SI"    142    400    82
    5    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    66    "NO"    168    400    273
    6    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    66    "VB"    4    400    0
    7    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    66    "VN"    11    400    5
    8    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    65    "SI"    137    400    80
    9    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    65    "NO"    181    400    242
    10    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    65    "VB"    2    400    2
    11    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    65    "VN"    10    400    4
    12    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    64    "SI"    135    400    95
    13    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    64    "NO"    144    400    244
    14    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    64    "VB"    2    400    2
    15    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    64    "VN"    55    400    10
    16    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    63    "SI"    112    400    89
    17    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    63    "NO"    178    400    252
    18    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    63    "VB"    7    400    1
    19    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "ANEXO DE COLEGIO SAN ANTONIO DE MATILLA"    63    "VN"    21    400    5
    20    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    81    "SI"    145    400    86
    21    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    81    "NO"    159    400    238
    22    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    81    "VB"    6    400    1
    23    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    81    "VN"    13    400    10
    24    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    80    "SI"    147    400    88
    25    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    80    "NO"    152    400    246
    26    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    80    "VB"    8    400    3
    27    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    80    "VN"    13    400    3
    28    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    79    "SI"    149    400    75
    29    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    79    "NO"    167    400    261
    30    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    79    "VB"    3    400    1
    31    "ALTO HOSPICIO"    "ALTO HOSPICIO"    "COLEGIO CATOLICO NAZARET"                    79    "VN"    12    400    5
    end
    
    gen SI=.
    replace SI= votos2023 if opciones=="SI"
    gen NO=.
    replace NO= votos2023 if opciones=="NO"
    gen VB=.
    replace VB= votos2023 if opciones=="VB"
    gen VN=.
    replace VN= votos2023 if opciones=="VN"

    Comment


    • #3
      Thank you #2, for helping provide the dataex example for the problem.

      I would perhaps do this:
      Code:
      local ops SI NO VB VN
      foreach op of local ops {
          egen votos2023`op' = max(cond(opciones == "`op'", votos2023, .)), by(comuna_x circunscripciónelectoral local mesa)
      }
      which produces:

      Code:
      . list , noobs sep(0) abbr(12)
      
        +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        |  n        comuna_x   circunscrip~l                                     local   mesa   opciones   votos2023   electores_x   votos2022   votos2023SI   votos2023NO   votos2023VB   votos2023VN |
        |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
        |  0   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     67         SI         154           400          82           154           163             4            14 |
        |  1   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     67         NO         163           400         231           154           163             4            14 |
        |  2   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     67         VB           4           400           1           154           163             4            14 |
        |  3   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     67         VN          14           400          10           154           163             4            14 |
        |  4   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     66         SI         142           400          82           142           168             4            11 |
        |  5   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     66         NO         168           400         273           142           168             4            11 |
        |  6   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     66         VB           4           400           0           142           168             4            11 |
        |  7   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     66         VN          11           400           5           142           168             4            11 |
        |  8   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     65         SI         137           400          80           137           181             2            10 |
        |  9   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     65         NO         181           400         242           137           181             2            10 |
        | 10   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     65         VB           2           400           2           137           181             2            10 |
        | 11   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     65         VN          10           400           4           137           181             2            10 |
        | 12   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     64         SI         135           400          95           135           144             2            55 |
        | 13   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     64         NO         144           400         244           135           144             2            55 |
        | 14   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     64         VB           2           400           2           135           144             2            55 |
        | 15   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     64         VN          55           400          10           135           144             2            55 |
        | 16   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     63         SI         112           400          89           112           178             7            21 |
        | 17   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     63         NO         178           400         252           112           178             7            21 |
        | 18   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     63         VB           7           400           1           112           178             7            21 |
        | 19   ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     63         VN          21           400           5           112           178             7            21 |
        | 20   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     81         SI         145           400          86           145           159             6            13 |
        | 21   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     81         NO         159           400         238           145           159             6            13 |
        | 22   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     81         VB           6           400           1           145           159             6            13 |
        | 23   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     81         VN          13           400          10           145           159             6            13 |
        | 24   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     80         SI         147           400          88           147           152             8            13 |
        | 25   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     80         NO         152           400         246           147           152             8            13 |
        | 26   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     80         VB           8           400           3           147           152             8            13 |
        | 27   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     80         VN          13           400           3           147           152             8            13 |
        | 28   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     79         SI         149           400          75           149           167             3            12 |
        | 29   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     79         NO         167           400         261           149           167             3            12 |
        | 30   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     79         VB           3           400           1           149           167             3            12 |
        | 31   ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     79         VN          12           400           5           149           167             3            12 |
        +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      But perhaps the OP is actually looking to reshape the data. It appears to be in "long" form currently, and can be changed thus to its "wide" form:

      Code:
      drop n
      reshape wide votos2023 votos2022, i(comuna_x circunscripciónelectoral local mesa electores_x) j(opciones) string
      This produces
      Code:
      . list, noobs abbr(12)
      
        +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        |      comuna_x   circunscrip~l                                     local   mesa   electores_x   votos2023NO   votos2022NO   votos2023SI   votos2022SI   votos2023VB   votos2022VB   votos2023VN   votos2022VN |
        |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
        | ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     63           400           178           252           112            89             7             1            21             5 |
        | ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     64           400           144           244           135            95             2             2            55            10 |
        | ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     65           400           181           242           137            80             2             2            10             4 |
        | ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     66           400           168           273           142            82             4             0            11             5 |
        | ALTO HOSPICIO   ALTO HOSPICIO   ANEXO DE COLEGIO SAN ANTONIO DE MATILLA     67           400           163           231           154            82             4             1            14            10 |
        |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
        | ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     79           400           167           261           149            75             3             1            12             5 |
        | ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     80           400           152           246           147            88             8             3            13             3 |
        | ALTO HOSPICIO   ALTO HOSPICIO                  COLEGIO CATOLICO NAZARET     81           400           159           238           145            86             6             1            13            10 |
        +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      Last edited by Hemanshu Kumar; 04 May 2024, 21:44.

      Comment

      Working...
      X