그룹의 고유 사례에 대한 카운터 추가모두 안녕
이를 위해 그룹 A 내에서 열 B의 고유 값을 증가시키는 정수 값 카운터를 어떻게 작성할 수 있습니까?

지금까지 시도한 내용은 다음과 같습니다.
dt_Table1 = Data Table("Table1");
dt_Table1 << New Column("Dataset", Numeric, "Nominal", Set Selected);
Sum1 = dt_Table1 << Summary(Group(:Group, :Date));
Sum2 = Sum1 << Summary(Group(:Group));
:N Rows << Set Name("N Datasets in Group");
dt_Table1 << Update(
with(Data Table(Sum2)),
Merge Same Name Columns
Match Flag(0),
Suppress foruma evaluation(0),
By Matching Columns(:Group = :Group),
Drop multiples(1, 0),
Include Nonmatches(0, 0),
Preserve main table order(1)
);
dt = dt_Table1;
For(i = 1, i <= :N Rows(dt), i++,
While(Group_Number = GetValue(:Group[i]),
N == Get Value(dt, :N Datasets in Group[i]),
For(j = 1, j <= N, j++,
:Dataset << Set Value == (j),
),
Group_Number = Group_Number + 1,
),
);
출력:


자동화 및 스크립팅기본 데이터 분석 및 모델링Re: 그룹의 고유 사례에 대한 카운터 추가Col Rank(), Col Cumulative Sum, Col Min() 등의 함수를 조합하여 이 작업을 수행할 수 있어야 합니다. 귀하의 예에 따라 Col Rank() 또는 Col Cumulative Sum(1, )이면 충분합니다(그룹에 중복 날짜가 없음).
열 3은 열 순위 및 열 4 열 누적 합계를 사용하고 열 5는 좀 더 복잡한 수식의 옵션 중 하나입니다.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(8),
Compress File When Saved(1),
New Column("g", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 1, 2, 2, 2, 2])),
New Column("d", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 2, 3])),
New Column("r", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 2, 3])),
New Column("Column 3", Numeric, "Continuous", Format("Best", 12), Formula(Col Rank(:d, :g))),
New Column("Column 4", Numeric, "Continuous", Format("Best", 12), Formula(Col Cumulative Sum(1, :g)))
);
dt << New Column("Column 5", Numeric, Continuous, Formula(
Col Cumulative Sum(
If(Row() == Col Min(Row(), :g, :d),
1
,
.
),
:g
)
));

Re: 그룹의 고유 사례에 대한 카운터 추가감사합니다.당신의 방법은 확실히 깨끗합니다.나는 논리를 완전히 따르지는 않지만 작동하는 것을 봅니다!
참고: Col Cumulative Sum()도 사용하는 다른 방법을 찾았습니다.당신보다 느립니다.여러 하위 테이블 및 조인...
요약1 = 표1 << 요약(그룹(:그룹, :날짜));
요약2 = 요약1 << 요약(그룹(:그룹, :날짜));
요약2 << 새 열( "데이터세트",
숫자,
"명사 같은",
선택 설정
);
:Dataset << Formula(Col Cumulative Sum( :N Rows, :Group ) );
//테이블 1에 조인
테이블1 << 조인(
( 데이터 테이블( 요약2 ) ),
선택(모두),
선택(
:데이터세트
),
일치하는 열로( :Run = :Run ),
배수( 1, 0 ) 삭제,
일치하지 않는 항목 포함( 0, 0 ),
기본 테이블 순서 유지( 1 ),
출력 테이블 이름( "Table2" )
);
Re: 그룹의 고유 사례에 대한 카운터 추가이 수식으로 새 열을 만듭니다.
만약에 ( 열 () == 1 ,
1 ,
만약에 ( :아이디 == 지연 ( :ID, 1 ),
지연 ( : 이름 ( "ID 수" ) ) + 1 , 1 ))
이것은 "ID" 열이 순차적으로 정렬된다고 가정합니다.
ID의 개수, 열은 위 수식을 사용하여 새 열의 이름입니다.
Re: 그룹의 고유 케이스에 대한 카운터 추가흠, 수식 편집기에 Col N 카테고리 기능하다 GroupBy 옵션.
Wish가 찬사를 기다리고 있습니다:
새로운 JSL 기능: Col N 카테고리
Re: 그룹의 고유 케이스에 대한 카운터 추가다음은 A열 내 B열에서 발견된 고유 값의 수를 생성하는 작은 스크립트입니다.
Names Default To Here( 1 );
dt = new table("Example",
New Column("A", character),
New Column("B", character)
);
charList = {"A","B","C","D","E","F","G","H","I","J"};
dt << add rows(25);
for each row(
:A = char(random integer(1,5));
:B = charList[random integer(1,10)]
);
dt << New Column( "count",
set each value(
As Constant( Summarize( dt, bygroup = by( :a, :p</img> ) ) );
N Items( Loc( bygroup[1], :a ) );
)
);Re: 그룹의 고유 케이스에 대한 카운터 추가좋은 해결 방법 
(p -> b)
하지만 실종 Col N 카테고리 아직도 아파요. 하나 추가할 수 있나요? 맞춤 기능 Col N 카테고리 (: 열, <{...}>)
선택적 목록은 이전 예제의 :a와 같이 by로 사용되는 열/하위 그룹을 지정하는 데 사용될 수 있습니다.
요약 함수에서 열을 참조하는 방법을 아는 사람은 누구입니까?
사용자 정의 함수 - 열을 참조하는 방법
Re: 그룹의 고유 케이스에 대한 카운터 추가일반적으로 다른 Col Something() 함수의 이상한 조합도 사용할 수 있습니다(비교가 수행되었기 때문에 가장 빠르지 않을 수 있으며, 제가 올바르게 기억한다면 Col 함수를 이 방식으로 사용하면 안 됩니다. 이것이 가장 좋은 방법 중 하나임에도 불구하고) 그들을 사용하여).
dt << New Column("C", Formula(
Col Sum(Row() == Col Min(Row(), :A, :B), :A);
));
Re: 그룹의 고유 케이스에 대한 카운터 추가
하나 추가할 수 있나요? 맞춤 기능 Col N 카테고리 (: 열, <{...}>)
깨끗하고 좋은 방식은 아니지만 byVar이 포함된 통계 사용자 정의(공식) 함수 만들기 , 사용자 정의 열 수식을 한 번에 평가하거나 행 사이의 값을 캐시하는 옵션 또는 함수
Re: 그룹의 고유 케이스에 대한 카운터 추가
@jthi 썼다:
깨끗하고 좋은 방식은 아니지만
아야!
커스텀을 추가하고 싶었는데 Col N 카테고리 함수를 마우스 오른쪽 버튼으로 클릭하면 새 수식 열 메뉴에서 사용할 수 있습니다.
따라서 추가로 필요한 경우 특급() 함수를 호출할 때 열 주위의 표현식이 올바르게 표시될 기회가 없습니까?
아아....
누락된 부분을 추가하는 데 시간이 너무 오래 걸린다는 사실이 정말 놀랍습니다. Col N 카테고리 
Re: 그룹의 고유 케이스에 대한 카운터 추가놀라운!
테이블의 구조에 따라 훨씬 더 빨라집니다. 
하지만 아직 해결방안은 멀다. 마우스 오른쪽 버튼으로 클릭 새 수식 열 메뉴 
Names Default To Here( 1 );
dt = new table("Example",
New Column("A", character),
New Column("B", character)
);
dt << add rows(20000);
for each row(
:A = char(random integer(1,5));
:B = char(random integer(1,1000));
);
t0 = hptime();
dt << New Column( "count",
set each value(
As Constant( Summarize( dt, bygroup = by( :a, :b) ) );
N Items( Loc( bygroup[1], :a ) );
)
);
(hptime() -t0)/1000000; //~ 1min
t0 = hptime();
dt << New Column("C", set each value(
Col Sum(Row() == Col Min(Row(), :A, :B), :A);
));
(hptime() -t0)/1000000; // < 1secRe: 그룹 내 고유 사례에 대한 카운터 추가좋은 소식: JMP19에서 Col N Unique()를 제공합니다.
https://community.jmp.com/t5/JMP-위시-리스트/Col-N-카테고리/idc-p/870972/하이라이트/true#M7292
새로운 수식 열 메뉴를 통해 사용할 수 있습니다.
