동일한 행의 모든 고유 집합에 대해 카운터를 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
나는 이것이 간단해야 한다는 것을 알고 있지만 루프를 구성/제한하는 방법을 잘 모르겠습니다 .... 어떤 도움을 주시면 감사하겠습니다. 감사!
Re: 동일한 행의 모든 고유 집합에 대해 카운터를 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>