고유 값에 대한 숫자 시퀀스는 어떻게 합니까?다음 Column1이 있고 Column1에 순차 반복 횟수를 포함하는 새 열을 만들어야 합니다.
결과 테이블은 다음과 같아야 합니다.
JSL에서 코딩하는 방법에 대한 제안 사항이 있습니까? (또는 열 수식에서?) 감사합니다!
Re: 고유한 값에 대한 숫자 시퀀스는 어떻게 합니까?다음은 열 수식 방법입니다.
// define values
Col1Vals = {"a","a","a","a","b","b","c","c","c"};
dt = New Table();
dt << New Column("MyValues",Character,Nominal,<< Set Values(Col1Vals));
// Create Cumulative Frequencies
dt << New Column("CumulativeFreqCount",Numeric,Continuous);
dt:CumulativeFreqCount << Set Each Value(
If(
Row() == 1, 1,
:MyValues == Lag( :MyValues, 1 ), Lag(:CumulativeFreqCount, 1 ) + 1,
1
)); // end set each valueRe: 고유한 값에 대한 숫자 시퀀스는 어떻게 합니까?사실 합이 아니라 누계를 구하고 싶은 부분을 놓쳤습니다.
이 작업을 수행하는 더 똑똑하고 효율적인 방법이 있다고 확신합니다. 그래도 작동합니다.
나는 본질적으로 당신이 테스트하고 플레이할 수 있도록 원시 데이터도 생성합니다.
// define values
Col1Vals = {"a","a","a","a","b","b","c","c","c"};
dt = New Table();
dt << New Column("MyValues",Character,Nominal,<< Set Values(Col1Vals));
// Generate summary
dt1 = dt << Summary( Group( :MyValues ), Freq( "None" ), Weight( "None" ) );
UniqueItems = dt1:MyValues << Get values;
FrequencyOfItems = dt1 << Get As Matrix; <BR /><BR />Close(dt1,"No Save");
// Add Cumulative Frequencies back
dt << New Column("CumulativeFreqCount",Numeric,Continuous);
for(i = 1, i <= N Items(UniqueItems),i++,
Rows = dt << Select Where(:MyValues == UniqueItems[i]) << Get Selected Rows;
ValsToAppend = Transpose(Index(1,FrequencyOfItems[i]));
dt[Rows,"CumulativeFreqCount"] = ValsToAppend;
dt << Clear Select;
); 
Re: 고유한 값에 대한 숫자 시퀀스는 어떻게 합니까?감사합니다.코드를 JMP 스크립트 파일(첨부 참조)에 넣었지만 스크립트가 실행되지 않습니다.어떤 제안?
열 수식에 코드를 넣는 것이 더 쉬울까요?
Re: 고유한 값에 대한 숫자 시퀀스는 어떻게 합니까?@rs ,
데이터 테이블에 대한 참조가 있다고 가정하고 dt라고 가정하겠습니다.
dt1 = dt << Summary(
Group( :Column 1 ),
Freq( "None" ),
Weight( "None" )
)
데이터가 정렬되지 않은 경우(일반적으로 정렬되어야 함) 결과 테이블에서 sort()를 사용할 수 있습니다.