테이블의 배치를 계산하여 데이터 테이블 만들기안녕하세요 JMP 커뮤니티
배치 번호가 일부만 채워진 데이터 세트가 있습니다.
제 목표는 각 배치마다 한 행을 포함하는 데이터 세트를 만드는 것입니다.
첫 번째 배치 번호와 마지막 배치 번호를 비교하여 필요한 행 수를 계산할 수 있습니다.
예에서 볼 수 있듯이 첫 번째 배치 번호가 7이고 마지막 배치 번호가 37이므로 30개 행의 데이터 세트가 필요합니다.
배치 이름에서 처음 3자리와 마지막 2자리는 무시해야 합니다.
제 생각에는 이게 간단해야 하는데, 막혔어요…
나는 곤경에서 벗어날 수 있기를 간절히 바랍니다!
감사해요
신자
자동화 및 스크립팅데이터 블렌딩 및 정리Re: 테이블의 배치를 계산하여 데이터 테이블 만들기음, 귀하의 질의를 이해하지 못하겠네요? 동일한 정보가 있는 여러 행이 있는데(첫 번째 3개, 행 4 & 5), 21-23, 25-26, 29가 있는 행이 빠졌나요? 또한 첫 번째 6자리 숫자도 동일합니다.
정확히 무엇을 하려고 합니까? 언제든지 열을 마우스 오른쪽 버튼으로 클릭하고 recode를 사용할 수 있습니다.
Re: 테이블의 배치를 계산하여 데이터 테이블 만들기이런 식인가요? 여러 행 대신 각 배치에 대해 단일 행이 있는 새 테이블을 만들고 누락된 배치를 채웁니다.
Names Default To Here( 1 );
Batch_vals = Associative Array( :Batch ) << Get Keys;
prefix = Left( :Batch[1], 3 );
suffix = Right( :Batch[1], 2 );
rootlength = Length( Batch_vals[1] ) - Length( prefix ) - Length( suffix );
Batch_nums = Transform Each( {v, i}, Batch_vals, Num( Substitute( v, {prefix, suffix}, "" ) ) );
Min_batch = Min( Batch_nums );
Max_batch = Max( Batch_nums );
Batches = Min_batch :: Max_batch;
dt = New Table( "Batches", New Column( "Batch Number", numeric, continuous, Set Values( Batches ) ) );
Eval(
Eval Expr(
dt << New Column( "Batch", character, Formula( Expr( prefix ) || Right( Char( :Batch Number ), rootlength, "0" ) || Expr( suffix ) ) )
)
);
dt:Batch << Delete Formula;Re: 테이블의 배치를 계산하여 데이터 테이블 만들기이렇게 하면 배치 번호가 생성되지 않고, 단지 번호만 생성됩니다.
Names Default To Here(1);
dt = Data Table("Format");
Summarize(dt, uniq = By(:Batch));
first_val = Num(Substr(uniq[1], 4, Length(uniq[1]) - 5));
last_val = Num(Substr(uniq[N Items(uniq)], 4, Length(uniq[1]) - 5));
dt = New Table("Res",
New Column("R", Numeric, Ordinal, Values(first_val::last_val))
);
해당 항목 목록을 문자열로 변환하여 배치 번호를 다시 추가하고 해당 항목에서 테이블을 생성할 수 있습니다(이전과 동일한 first_val 및 last_val).
batches = Transform Each({item}, As List((first_val::last_val)`),
"245" || Right("00000" || Char(item), 5) || "00"
);
dt = New Table("Res2",
New Column("R", Character, Ordinal, Values(batches))
);Re: 테이블의 배치를 계산하여 데이터 테이블 만들기고맙습니다, Jarmo! 완벽하네요.
이 글을 쓰면서 저는 JMP 커뮤니티가 얼마나 대단한지 자랑했는데, 실망하지 않았습니다!
건배, 크리스찬
Re: 테이블의 배치를 계산하여 데이터 테이블 만들기@mmarchandFSLR 답변 감사합니다!
귀하의 스크립트는 완벽하게 작동합니다!
귀하의 솔루션에는 저에게 처음 듣는 몇 가지 프롬프트/스크립트가 포함되어 있습니다. 예를 들어, 연관 배열, 각각 변환, 평가, 평가 표현식 등이 있습니다.
귀하의 솔루션이 어떻게 작동하는지 자세히 알아보고 싶습니다!
이 글을 쓰면서 저는 JMP 커뮤니티가 얼마나 대단한지 자랑했는데, 실망하지 않았습니다!
건배, 크리스찬
Re: 테이블의 배치를 계산하여 데이터 테이블 만들기이러한 기능 중 일부에 대한 간단한 설명과 중요한 변경 사항:
Names Default To Here( 1 );
//An associative array is a dictionary or hash map that links keys to values. Each key must be unique.
//Using a single column as the argument for the array gives us the unique values of the column with each value set to 1
//The <<GET keys="" message="" then="" yields="" the="" only=""></GET>
Re: 테이블의 배치를 계산하여 데이터 테이블 만들기배치 번호를 순차적으로 증가시켜 행을 만들 수 있습니다.