고정된 값으로 데이터를 초기화하려면 어떻게 해야 하나요?안녕하세요, 저는 저희 테이블의 일부 데이터를 "초기화"하는 공식을 구현하고 싶습니다. 구체적으로, 저는 테스트 실행의 첫 번째 반복 값을 열의 모든 요소에서 빼고 싶습니다(반복 정보는 다른 열에 포함되어 있습니다).
제가 작업 중인 표를 첨부합니다. 공식은 열 "X_35"에 통합됩니다. 아이디어는 분석의 첫 번째 반복(열 X_21)에서 얻은 X_22에 포함된 값을 각 테스트에 할당하는 것입니다. 그러나 테스트 조건으로 필터링하고 특히 다른 열(예: X_5, X_7 및 X_8)로 구분하는 데 관심이 있습니다. 그런 다음 각 행에 차이를 적용하여 첫 번째 반복에서 각 지점에 대한 오프셋을 얻습니다. 가능하면 열 공식을 사용하여 수동으로 값을 입력하는 것을 피하면서 솔루션을 찾고 싶습니다.
저는 JMP 17을 사용하고 있습니다
감사해요
기본 데이터 분석 및 모델링데이터 탐색 및 시각화윈도우Re: 고정된 값으로 데이터를 초기화하려면 어떻게 해야 하나요?커뮤니티에 오신 것을 환영합니다.
당신이 무엇을 요구하고 있는지 조금 혼란스럽습니다. 내가 당신의 데이터에서 보는 것은 다음과 같습니다.
열 X_31은 데이터의 8개 수준을 각각 정의하며, 열 X_21에 대한 각 행 그룹은 1에서 980까지의 하위 그룹화 값을 갖습니다.
당신이 하고 싶은 것은 X_21 값이 1이 아닌 주어진 행에 대해 X_5, X_7 및 X_8의 값을 살펴본 다음 X의 초기 값과 열 X_22에 일치하는 값을 찾고 그 값을 열 X_22의 현재 행 값에서 빼는 것입니다.
저는 제 평가에 전혀 자신감이 없습니다. 데이터를 검토해보니 X_31 초기값의 각 그룹화에 대해 열 X_5, X_7 및 X_8에 대한 조합이 훨씬 더 많습니다.
현재 제공된 데이터 테이블에서 표시하고 있는 X_35의 값은 X_21의 값이 1과 같으면 X_22 열에서 복사되며, JMP에서 쉽게 할 수 있는 일입니다. 다른 행에 대해 원하는 것이 무엇인지 이해하는 것은 혼란스럽습니다. 행 7과 행 14에 대한 예상 결과와 결과를 얻기 위해 취한 단계를 제공해 주시면 매우 도움이 될 것입니다.
Re: 고정된 값으로 데이터를 초기화하려면 어떻게 해야 하나요?안녕하세요, 빠른 답변 감사합니다. 제 설명이 부족해서 죄송하지만, 제가 바라는 것보다 설명하는 것이 더 복잡합니다.
나는 개략적인 표를 통해 시도해 볼 것이다.
목표는 각 측정에 대해 테스트 유형에 따라 첫 번째 반복에 해당하는 값을 갖는 "초기 값" 열을 얻는 것입니다. 여기서는 A 또는 B로 식별됩니다. 그런 다음 간단한 차이로 0에서 시작하여 첫 번째 실험에서 이동된 값을 얻습니다.
다른 메시지에서 본 공식은 반복 횟수와 함께 if 조건을 사용하여 "초기 값" 열을 쓰려는 시도이며, 문제는 다른 반복 횟수에 대해 동일한 값을 얻기 위해 다른 조건에 무엇을 써야 하는가입니다.
다시 한번 감사드립니다
Re: 고정된 값으로 데이터를 초기화하려면 어떻게 해야 하나요?열 수식을 사용하면 원하는 것을 만들 수 있습니다.
As Constant( dt = Current Data Table() );
currentType = :Type;
theInitialValue = :Value[(dt << get rows where( :Type == CurrentType & :Repetition == 1 ))[1]];
:Value - theInitialValue;

하지만 이 방법은 효과적이지만, 55,000개 이상의 데이터 표에서는 이 공식은 그다지 효율적이지 않습니다.
더 효율적인 방법은 간단한 스크립트를 사용하여 초기 값만 포함하는 새 테이블을 만든 다음 테이블을 원래 테이블로 다시 병합하는 것입니다. 이렇게 하면 일치를 통해 초기 값을 모든 일치하는 레코드에 복제할 수 있습니다.
names default to here(1);
dt=
New Table( "Example2",
Add Rows( 8 ),
New Column( "Type",
Character,
Set Values( {"A", "A", "A", "A", "B", "B", "B", "B"} )
),
New Column( "Repetition",
Numeric,
Set Values( [1, 2, 3, 4, 1, 2, 3, 4] )
),
New Column( "Value",
Numeric,
Set Values( [4, 10, 8, 7, 6, 9, 5, 10] )
)
);
// Create a table with the initial values
dt << select where(:Repetition == 1 );
initialDT = dt << subset( selected rows(1), columns({:Type,:Value}));
// Rename column Value to Initial Value
initialDT:Value << set name("Initial Value");
// Merge the values back to the original table
dt << Update(
With( initialDT ) ,
Match Columns( :Type = :Type )
);
// Create a column that contains the difference
dt << New Column( "Difference",
formula( :Value - :Initial Value )
);

Re: 고정된 값으로 데이터를 초기화하려면 어떻게 해야 하나요?이러한 정규화 단계를 더 자주 수행한다면 Normalization GUI를 고려해 볼 수 있습니다.
"첫 번째" 값을 빼는 것 외에도 "마지막", N-1, "중앙값", "평균"과 같은 더 많은 옵션을 제공합니다(마지막 옵션은 행 제외도 고려합니다).
값을 계산할 것인지, 아니면 입력 열이 업데이트되면 자동으로 값을 업데이트하는 수식을 사용할 것인지 결정할 수 있습니다.
Re: 고정된 값으로 데이터를 초기화하려면 어떻게 해야 하나요?감사해요!
이제 필요한 모든 변수를 사용하여 코드를 구현하려고 합니다. 현재는 모든 것이 제대로 작동합니다.