Ciao a tutti,
Immagino che quello che voglio fare sia davvero facile, solo che non ho trovato un buon modo per farlo. Ho una grande tabella con un numero considerevole di righe identiche che voglio rinominare in modo univoco ma riproducibile. Attualmente, ho uno script che accetta la seguente colonna:
Un numero 1
B numero 1
Un numero 2
Un numero 3
Un numero 3
Un numero 3
B numero 3
B numero 3
B numero 3
...
In una nuova colonna dei nomi, utilizzando l'identificatore dell'indice di riga:
Un numero 1
B numero 1
Un numero 2
Un numero 3
Un numero 3 5
Un numero 3 6
B numero 3
B numero 3 8
B numero 3 9
Quel codice è
Names Default To Here( 0 );
RawFile << New Column( "itemname2", Character, Nominal );
Current Data Table( RawFile );
For( i = 2, i <= N Rows( RawFile ), i++,
If( :itemname[i] == :itemname[i - 1],
:itemname2[i] = :itemname[i] || " " || Char( i ),
:itemname2[i] = :itemname[i];
);
);
Funziona abbastanza bene, ma il problema qui è che voglio che l'output aumenti invece da 1 ogni volta che deve essere usato, per dare qualcosa come
Un numero 1
B numero 1
Un numero 2
Un numero 3
Un numero 3 1
Un numero 3 2
B numero 3
B numero 3 1
B numero 3 2
So che dovrebbe essere semplice, ma non sono sicuro di come strutturare/limitare il ciclo....qualsiasi aiuto sarebbe apprezzato. Grazie!
Non importa..... mi sono reso conto che avevo solo bisogno dell'inizializzazione del secondo contatore fuori dal ciclo. Saluti!
<SPAN class="token function">Names Default To Here</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
RawFile <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> New Column</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"itemname2"</SPAN><SPAN class="token punctuation">,</SPAN> Character<SPAN class="token punctuation">,</SPAN> Nominal <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token function">Current Data Table</SPAN><SPAN class="token punctuation">(</SPAN> RawFile <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;<BR /></SPAN>k=1;
<SPAN class="token function">For</SPAN><SPAN class="token punctuation">(</SPAN> i <SPAN class="token operator">=</SPAN> <SPAN class="token number">2</SPAN><SPAN class="token punctuation">,</SPAN> i <SPAN class="token operator"><=</SPAN> N Rows<SPAN class="token punctuation">(</SPAN> RawFile <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> i<SPAN class="token operator">++</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token function">If</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>itemname<SPAN class="token punctuation">[</SPAN>i<SPAN class="token punctuation">]</SPAN> <SPAN class="token operator">==</SPAN> <SPAN class="token punctuation">:</SPAN>itemname<SPAN class="token punctuation">[</SPAN>i <SPAN class="token operator">-</SPAN> <SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">:</SPAN>itemname2<SPAN class="token punctuation">[</SPAN>i<SPAN class="token punctuation">]</SPAN> <SPAN class="token operator">=</SPAN> <SPAN class="token punctuation">:</SPAN>itemname<SPAN class="token punctuation">[</SPAN>i<SPAN class="token punctuation">]</SPAN> <SPAN class="token operator">||</SPAN> <SPAN class="token string">" "</SPAN> <SPAN class="token operator">||</SPAN> <SPAN class="token function">Char</SPAN><SPAN class="token punctuation">(</SPAN> k <SPAN class="token punctuation">);<BR /></SPAN> k++,
<SPAN class="token punctuation">:</SPAN>itemname2<SPAN class="token punctuation">[</SPAN>i<SPAN class="token punctuation">]</SPAN> <SPAN class="token operator">=</SPAN> <SPAN class="token punctuation">:</SPAN>itemname<SPAN class="token punctuation">[</SPAN>i<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">;<BR /></SPAN> k=1
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>