Salut tout le monde,
Je pense que ce que je veux faire est vraiment facile, je n'ai tout simplement pas trouvé de bonne façon de le faire. J'ai une grande table avec un nombre important de lignes identiques que je souhaite renommer de manière unique mais reproductible. Actuellement, j'ai un script qui prend la colonne suivante :
Un numéro 1
B numéro 1
Un numéro 2
Un numéro 3
Un numéro 3
Un numéro 3
B numéro 3
B numéro 3
B numéro 3
...
Dans une nouvelle colonne de noms, en utilisant l'identifiant d'index de ligne :
Un numéro 1
B numéro 1
Un numéro 2
Un numéro 3
Un numéro 3 5
Un numéro 3 6
B numéro 3
Numéro B 3 8
Numéro B 3 9
Ce code est
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];
);
);
Cela fonctionne assez bien, mais le problème ici est que je veux que la sortie augmente à la place de 1 à chaque fois qu'elle doit être utilisée, pour donner quelque chose comme
Un numéro 1
B numéro 1
Un numéro 2
Un numéro 3
Un numéro 3 1
Un numéro 3 2
B numéro 3
Numéro B 3 1
Numéro B 3 2
Je sais que cela devrait être simple, mais je ne sais pas comment structurer/limiter la boucle... toute aide serait appréciée. Merci!
Peu importe ..... j'ai réalisé que j'avais juste besoin de l'initialisation du deuxième compteur en dehors de la boucle. Salutations!
<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>