Announcement

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

  • copy values to other variables if the whole spell can fit

    Hi,

    My problem is that I want to copy the spells (variable names spell*) to variables Pos1-Pos15. I want the whole spell to be copied to the position (Pos1-Pos15) that can fit the whole spell, i.e not splitting up the spells between different positions.
    I hope to copy the spell starting with the lowest spell_date to Pos1. Then copy the spell with the second lowest spell_date to Pos1. If Pos1 can not fit the whole spell, instead copy the spell in full to Pos2. If Pos2 cannot either fit the whole spell then copy it to Pos3, if Pos3 can not fit the whole spell then copy the spell in full to Pos4 and so on...). Please see the second dataex-example for my desired result.
    If there is not any place left in Pos1-Pos15 to fit a whole spell, I would like to have an error message. I do not think this will happen considering the way the dataset is arranged, but it would not hurt to be on the safe side.

    I am only showing a few of my 5000+ spells below, but I hope you get an understanding of my problem.



    Excerpt of my original dataset (slightly modified to make my problem (hopefully more clear):

    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input float spell_date double(Pos1 Pos2 Pos3 Pos4 Pos5 Pos6 Pos7 Pos8 Pos9 Pos10 Pos11 Pos12 Pos13 Pos14 Pos15) float(spell3 spell6 spell8 spell13 spell37 spell56 spell58 spell64 spell71 spell73 spell77)
      1 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
      2 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
      3 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
      4 . . . . . . . . . . . . . . . 1 . 16  .  .  .  .  .   .   .   .
      5 . . . . . . . . . . . . . . . 1 . 16  .  .  .  .  .   .   .   .
      6 . . . . . . . . . . . . . . . 1 . 16  .  .  .  .  .   . 113 124
      7 . . . . . . . . . . . . . . . 1 .  . 19  .  .  .  .   . 113 124
      8 . . . . . . . . . . . . . . . 1 .  . 19  .  .  .  .   . 113 124
      9 . . . . . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     10 . . . . . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     11 . . . . . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     12 . . . . . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     13 . . . . . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     14 . . . . . . . . . . . . . . . . .  . 19  .  .  .  .   .   . 124
     15 . . . . . . . . . . . . . . . . .  . 19 61 84  .  .   .   . 124
     16 . . . . . . . . . . . . . . . . .  . 19 61 84  .  .   .   . 124
     17 . . . . . . . . . . . . . . . . .  . 19  . 84  .  .   .   . 124
     18 . . . . . . . . . . . . . . . . .  . 19  . 84  .  .   .   . 124
     19 . . . . . . . . . . . . . . . . .  . 19  . 84  .  .   .   . 124
     20 . . . . . . . . . . . . . . . . .  . 19  . 84  .  .   .   . 124
     21 . . . . . . . . . . . . . . . . .  .  .  . 84  .  .   .   . 124
     22 . . . . . . . . . . . . . . . . .  .  .  . 84  .  .   .   . 124
     23 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     24 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     25 . . . . . . . . . . . . . . . . .  .  .  .  .  . 96   .   .   .
     26 . . . . . . . . . . . . . . . . .  .  .  .  .  . 96   .   .   .
     27 . . . . . . . . . . . . . . . . .  .  .  .  .  . 96   .   .   .
     28 . . . . . . . . . . . . . . . . .  .  .  .  .  . 96   .   .   .
     29 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     30 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     31 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     32 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     33 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     34 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     35 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     36 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     37 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     38 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     39 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     40 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     41 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     42 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     43 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     44 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     45 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     46 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     47 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     48 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     49 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     50 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     51 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     52 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     53 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     54 . . . . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     55 . . . . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     56 . . . . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     57 . . . . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     58 . . . . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     59 . . . . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     60 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     61 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     62 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     63 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     64 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     65 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     66 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     67 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     68 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     69 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     70 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     71 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     72 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     73 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     74 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     75 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     76 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     77 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     78 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     79 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     80 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     81 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     82 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     83 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     84 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     85 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     86 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     87 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     88 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     89 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     90 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     91 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     92 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     93 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     94 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     95 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     96 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     97 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     98 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     99 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
    100 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    101 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    102 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    103 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    104 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    105 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    106 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    107 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    108 . . . . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    109 . . . . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    110 . . . . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    111 . . . . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    112 . . . . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    113 . . . . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    114 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    115 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    116 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    117 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    118 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    119 . . . . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    120 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    121 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    122 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    123 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    124 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    125 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    126 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    127 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    128 . . . . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    129 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    130 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    131 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    132 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    133 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    134 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    135 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    136 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    137 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    138 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    139 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    140 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    141 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    142 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    143 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    144 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    145 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    146 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    147 . . . . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    148 . . . . . . . . . . . . . . . 2 4  .  .  .  .  .  .   .   .   .
    149 . . . . . . . . . . . . . . . 2 4  .  .  .  .  .  .   .   .   .
    150 . . . . . . . . . . . . . . . 2 4  .  .  .  .  .  .   .   .   .
    end

    I am hoping to get the following structure after copying the spells:

    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input float spell_date double(Pos1 Pos2 Pos3 Pos4 Pos5 Pos6 Pos7 Pos8 Pos9 Pos10 Pos11 Pos12 Pos13 Pos14 Pos15) float(spell3 spell6 spell8 spell13 spell37 spell56 spell58 spell64 spell71 spell73 spell77)
      1   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
      2   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
      3   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
      4   1 16   .   . . . . . . . . . . . . 1 . 16  .  .  .  .  .   .   .   .
      5   1 16   .   . . . . . . . . . . . . 1 . 16  .  .  .  .  .   .   .   .
      6   1 16 113 124 . . . . . . . . . . . 1 . 16  .  .  .  .  .   . 113 124
      7   1 19 113 124 . . . . . . . . . . . 1 .  . 19  .  .  .  .   . 113 124
      8   1 19 113 124 . . . . . . . . . . . 1 .  . 19  .  .  .  .   . 113 124
      9   . 19 113 124 . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     10   . 19 113 124 . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     11   . 19 113 124 . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     12   . 19 113 124 . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     13   . 19 113 124 . . . . . . . . . . . . .  . 19  .  .  .  .   . 113 124
     14   . 19   . 124 . . . . . . . . . . . . .  . 19  .  .  .  .   .   . 124
     15  61 19  84 124 . . . . . . . . . . . . .  . 19 61 84  .  .   .   . 124
     16  61 19  84 124 . . . . . . . . . . . . .  . 19 61 84  .  .   .   . 124
     17   . 19  84 124 . . . . . . . . . . . . .  . 19  . 84  .  .   .   . 124
     18   . 19  84 124 . . . . . . . . . . . . .  . 19  . 84  .  .   .   . 124
     19   . 19  84 124 . . . . . . . . . . . . .  . 19  . 84  .  .   .   . 124
     20   . 19  84 124 . . . . . . . . . . . . .  . 19  . 84  .  .   .   . 124
     21   .  .  84 124 . . . . . . . . . . . . .  .  .  . 84  .  .   .   . 124
     22   .  .  84 124 . . . . . . . . . . . . .  .  .  . 84  .  .   .   . 124
     23   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     24   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     25  96  .   .   . . . . . . . . . . . . . .  .  .  .  .  . 96   .   .   .
     26  96  .   .   . . . . . . . . . . . . . .  .  .  .  .  . 96   .   .   .
     27  96  .   .   . . . . . . . . . . . . . .  .  .  .  .  . 96   .   .   .
     28  96  .   .   . . . . . . . . . . . . . .  .  .  .  .  . 96   .   .   .
     29   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     30   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     31   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     32   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     33   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     34   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     35   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     36   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     37   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     38   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     39   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     40   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     41   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     42   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     43   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     44   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     45   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     46   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     47   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     48   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     49   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     50   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     51   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     52   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     53   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     54  87  .   .   . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     55  87  .   .   . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     56  87  .   .   . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     57  87  .   .   . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     58  87  .   .   . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     59  87  .   .   . . . . . . . . . . . . . .  .  .  .  . 87  .   .   .   .
     60   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     61   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     62   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     63   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     64   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     65   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     66   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     67   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     68   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     69   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     70   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     71   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     72   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     73   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     74   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     75   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     76   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     77   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     78   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     79   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     80   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     81   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     82   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
     83 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     84 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     85 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     86 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     87 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     88 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     89 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     90 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     91 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     92 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     93 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     94 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     95 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     96 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     97 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     98 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
     99 125  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   . 125
    100   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    101   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    102   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    103 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    104 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    105 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    106 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    107 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    108 107  3   .   . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    109 107  3   .   . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    110 107  3   .   . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    111 107  3   .   . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    112 107  3   .   . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    113 107  3   .   . . . . . . . . . . . . . 3  .  .  .  .  .  . 107   .   .
    114 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    115 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    116 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    117 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    118 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    119 107  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  . 107   .   .
    120   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    121   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    122   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    123   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    124   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    125   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    126   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    127   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    128   .  .   .   . . . . . . . . . . . . . .  .  .  .  .  .  .   .   .   .
    129   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    130   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    131   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    132   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    133   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    134   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    135   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    136   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    137   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    138   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    139   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    140   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    141   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    142   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    143   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    144   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    145   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    146   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    147   4  .   .   . . . . . . . . . . . . . 4  .  .  .  .  .  .   .   .   .
    148   4  2   .   . . . . . . . . . . . . 2 4  .  .  .  .  .  .   .   .   .
    149   4  2   .   . . . . . . . . . . . . 2 4  .  .  .  .  .  .   .   .   .
    150   4  2   .   . . . . . . . . . . . . 2 4  .  .  .  .  .  .   .   .   .
    end


    All the best and thank you in advance. All suggestions are welcome.

    Jesper Eriksson

  • #2
    Interesting problem. Perhaps there is a simpler way to do this, but I don't see one.

    Code:
    frame put spell*, into(spell_summary)
    
    keep spell_date Pos*
    reshape long Pos, i(spell_date) j(position)
    assert missing(Pos)
    
    
    frame change spell_summary
    reshape long spell, i(spell_date) j(j)
    drop if missing(spell)
    vclash j, within(spell) break
    collapse (min) start = spell_date (max) end = spell_date, by(spell j)
    sort start j
    
    capture program drop place_one_spell
    program define place_one_spell
        local start = start[1]
        local end = end[1]
        local value = spell[1]
        frame default {
            tempvar can_fit
            quietly by position (spell_date), sort: egen `can_fit' = ///
                min(cond(inrange(spell_date, `start', `end'), missing(Pos), .))
            summ position if `can_fit', meanonly
            if `r(N)' == 0 {
                noisily display as error "No Pos accommodates `value' between dates `start' and `end'"
                noisily display as text ""
            }
            else {
                quietly replace Pos = `value' if position == `r(min)' & inrange(spell_date, `start', `end')
            }
        }
        exit
    end
    
    runby place_one_spell, by(start j) verbose
    
    frame change default
    reshape wide
    Notes:
    1. -runby- is written by Robert Picard and me and is available from SSC
    2. This code relies on -frame-s and requires Stata version 16 or later. Unlike most -frame- based code, this can be reworked in terms of tempfiles only with considerable difficulty, so if your Stata is older than version 16, I suggest you farm this out to somebody who has the current version, or upgrade to the current version yourself.
    3. This code generates the values of the Pos* variables you wanted. The data left in the default frame at the end contains those, plus spell_date, but not the other spell* variables. If you need the spell variables combined into this, you can -merge- the result with your original data set.

    Comment


    • #3
      Thank you Clyde, I have not used frame-s in Stata yet. I have Stata 16. This will be an excellent oppurtunity to learn frame-s. The code looks great but when I run the code Stata does not recognize the command vclash. Is it a typo? I can't find it in the help files either.

      Code:
      vclash j, within(spell) break
      command vclash is unrecognized
      r(199);
      Thanks again.

      Comment


      • #4
        I tested the code without
        Code:
        vclash j, within(spell) break
        and it seems to work just fine anyway. As far as I can see, I will try the code in my full dataset as well. Wonderful help Clyde, always impressed by your skills.

        Just curious, what is the vclash supposed to do?

        Comment


        • #5
          Sorry about that. -vclash- is an ado file that I wrote, but have never published. That particular instantiation basically just tests the assumption that the value of j is always constant within each spell. I had put that in while I was developing the code, to verify that things were working the way I had in mind. In fact, I put that in while writing a different solution from the one I posted--one which would not work correctly if that assumption failed. After working longer on the code, I decided that there was no reason to require that assumption, so I changed the code to a different approach that would work regardless. But I forgot to remove that line.

          I often introduce things like that into code while I am developing solutions. My intention is to remove them before posting. I forgot to do that this time. Second time this week I've done that. I need to be more rigorous in reviewing my code before posting. Sorry.

          Comment


          • #6
            Originally posted by Clyde Schechter View Post
            Sorry about that. -vclash- is an ado file that I wrote, but have never published. That particular instantiation basically just tests the assumption that the value of j is always constant within each spell. I had put that in while I was developing the code, to verify that things were working the way I had in mind. In fact, I put that in while writing a different solution from the one I posted--one which would not work correctly if that assumption failed. After working longer on the code, I decided that there was no reason to require that assumption, so I changed the code to a different approach that would work regardless. But I forgot to remove that line.

            I often introduce things like that into code while I am developing solutions. My intention is to remove them before posting. I forgot to do that this time. Second time this week I've done that. I need to be more rigorous in reviewing my code before posting. Sorry.
            Aha, I understand. Well the code works perfectly. The value of j is constant within each spell (should be at least), but always good to check.

            No need to be sorry. Many thanks again!

            Comment

            Working...
            X