對於每組唯一的相同行,將計數器從 1 增加到 n大家好,
我想我想做的事情真的很簡單,只是我還沒有想出一個好的方法來做。 我有一個大表,其中包含大量相同的行,我想以一種可重現的方式唯一地重命名這些行。 目前,我有一個包含以下列的腳本:
數字 1
B 號 1
數字 2
數字 3
數字 3
數字 3
B 號 3
B 號 3
B 號 3
...
進入一個新的名稱列,使用行索引標識符:
數字 1
B 號 1
數字 2
數字 3
數字 3 5
一個數字 3 6
B 號 3
B號3 8
B 號 3 9
該代碼是
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];
);
);
這很好用,但這裡的問題是我希望輸出在每次需要使用時從 1 開始遞增,給出類似
數字 1
B 號 1
數字 2
數字 3
一個數字 3 1
一個數字 3 2
B 號 3
B 號 3 1
B 號 3 2
我知道這應該很簡單,但我不確定如何構造/限制循環....任何幫助將不勝感激。 謝謝!
回复:為每組唯一的相同行將計數器從 1 增加到 n沒關係.....意識到我只需要在循環外初始化第二個計數器。 乾杯!
<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>