조건부 수식을 사용하여 새 열 채우기(:Assign Month) 값을 기준으로 "A" 또는 "B"로 새 열(:Prog_)을 채우려고 합니다.:할당 월은 숫자형 연속형 m/d/y 변수입니다.
아래 스크립트에서는 :Prog_ 열이 채워지지만 :Prog_ 열을 채우려는 값은 채워지지 않습니다.
:Assign Month <= "06/15/2016"인 경우 :Prog_ 열 행을 "A"로 채우고 싶습니다.
:Assign Month가 2016년 6월 15일보다 큰 경우 :Prog_ 열 행을 "B"로 채우고 싶습니다.
다음은 지금까지 (실패한) 사용하려고 시도한 스크립트입니다.
CT << New Column("Prog_", 문자);
각 행에 대해(Prog_ = if( Char(Format(:Assign Month,"m/d/y")) <= "06/15/2016", "A", "B" ));
CT << New Column("Prog_", 문자);
각 행에 대해(Prog_ = if( :Assign Month <= 06/15/2016, "A", "B" ));
고급 통계 모델링자동화 및 스크립팅소비자 및 시장 조사품질 및 프로세스 엔지니어링결과 공유 및 전달Re: 조건부 수식을 사용하여 새 열 채우기이 스크립트에 도움을 주셔서 감사합니다!
댄 F.
Re: 조건부 수식을 사용하여 새 열 채우기안녕하세요 마크 - 이 스크립트에 도움을 주셔서 감사합니다!
댄 F.
Re: 조건부 수식을 사용하여 새 열 채우기원래 변수는 숫자이며 JMP 날짜 및 시간 값을 나타냅니다. 이를 형식화된 문자열로 변환할 필요가 없습니다. 시간 임계값을 상수로 직접 지정할 수 있습니다.
CT << New Column( "Prog_", Character );
For Each Row( :Prog_ = If( :Assign Month <= 15Jun2016, "A", "B" ) );
Re: 조건부 수식을 사용하여 새 열 채우기이러한 유형의 문제를 일반적으로 처리하는 방법은 다음과 같습니다.Informat() 함수는 문자열을 날짜의 숫자 표현으로 변환합니다. 그러면 JMP DateTime 값과 쉽게 비교할 수 있습니다.
CT = Current Data Table();
CT << New Column( "Prog_", Character );
For Each Row( Prog_ = If( :Assign Month <= Informat( "06/15/2016", "mdy" ), "A", "B" ) );
그리고 추가하려면 @Thierry_S 수식 열을 만든 경우 For Each Row()를 피할 수 있습니다.
CT = Current Data Table();
CT << New Column( "Prog_",
Character,
formula(
If( :Assign Month <= Informat( "06/15/2016", "mdy" ),
"A",
"B"
)
)
);
Re: 조건부 수식을 사용하여 새 열 채우기안녕,
먼저 :Assign Month 열의 형식이 숫자, 연속 날짜 형식으로 지정되어 있는지 확인하세요. 귀하의 수식에 따옴표를 사용하면 현재는 그렇지 않다는 것을 알 수 있습니다.
둘째, JMP에게 각 행을 보도록 지시할 필요가 없습니다. JMP는 기본적으로 이를 수행합니다.
셋째, :Prog_ 열의 공식은 다음과 같습니다.
If( :Column 1 <= Date MDY( 16, 05, 2016 ),
"A",
"B"
)
참고로, 이것이 JSL 스크립트의 일부인 경우 해당 함수는 New Column 문에 포함되어야 합니다. 정확한 구문은 스크립팅 도움말을 확인하세요.
최상의,
TS