동일 범주에 속하는 모든 결측값이 있는 열을 삭제하는 JSL 구현첨부 파일에서 "Store" 필드는 A와 B 두 개의 매장으로 나뉘어 있습니다. 동일한 매장에 해당하는 열의 모든 셀에 값이 없는 경우, 첨부된 "예상 결과"와 같이 해당 열 전체를 삭제해야 합니다. 이를 JSL을 사용하여 어떻게 구현할 수 있을까요?
각 열의 결측값 개수는 셀 수 있지만, 동일한 매장에 해당하는 모든 셀에 결측값이 있는지 확인하는 방법을 찾지 못했습니다. 좋은 방법이 있을까요? 열이 수만 개나 되기 때문에 복잡한 계산 방식을 사용하면 너무 오래 걸릴 것 같습니다.
자동화 및 스크립팅제목: 동일 범주에 속하는 모든 결측값이 있는 열을 삭제하기 위한 JSL 구현 관련왜 바나나 가격과 두리안 가격이 유지되는 거죠? 모든 "A" 바나나 가격과 모든 "B" 두리안 가격이 누락되었습니다.
제목: 동일 범주에 속하는 모든 결측값이 있는 열을 삭제하기 위한 JSL 구현 관련안녕,
당신의 규칙을 정확히 따르면서 스크립트를 사용하지 않는 방법을 고안했습니다. 하지만 @mmarchandFSLR 님 이 지적하신 것처럼 바나나와 두리안이 제외/삭제되기 때문에 결과가 당신의 "결과"와 일치하지 않을 것입니다.
1) 모든 열을 쌓으세요 (첨부된 예시 참조)
2) 다음 공식을 사용하세요:
Col Sum( Is Missing( :Data ), :Store, :Label ) / Col Sum( 1, :Store, :Label )
3) "삭제할 행"이라는 마스터 체크 열을 추가하고 다음 수식을 입력합니다.
Col Max( :MISSING by STORE PCT, :Label )
4) 표시된 행을 삭제합니다.
5) 결과 테이블을 "레이블"을 기준으로 분할합니다.
최상의,
TS
제목: 동일 범주에 속하는 모든 결측값이 있는 열을 삭제하기 위한 JSL 구현 관련다음과 같은 형태의 표를 만드시는 것을 제안합니다.

그런 다음 표를 읽고 각 매장에 대해 삭제해야 하는 N 대 N 결측치 조건을 만족하는 열 목록을 만들 수 있습니다.
다음은 테이블을 생성하는 샘플 스크립트입니다.
names default to here(1);
dt=data table("Fruite Price");
colNames = dt << get column names(continuous);
dtMissing = dt << Summary( invisible,
Group( :Store ),
N Missing( colNames ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
output table name( "N Missing" )
);
dtStack = dtMissing << Stack( invisible,
columns(
colNames
),
Source Label Column( "Product" ),
Stacked Data Column( "N Missing" ),
Output Table( "Stack of N Missing" )
);
dtEval = dtStack <<
Split(
Split By( :Store ),
Split( :N Missing, :N Rows ),
Group( :Product ),
Output Table( "Eval Table" ),
Sort by Column Property
);
Tabulate 플랫폼을 사용하여 테이블을 생성할 수도 있지만, 수천 개의 열이 있다고 하셨습니다. 이 경우 Tabulate는 적합하지 않을 것 같습니다. 하지만 위의 스크립트를 사용하면 처리할 수 있을 것입니다.