조건부 수식을 사용하여 새 열 채우기새 열 (: Prog_)을 (: Assign Month)의 값에 따라 "A"또는 "B"로 채우려 고합니다.: Assign Month는 숫자의 연속적인 m / d / y 변수입니다.
아래 스크립트는 : Prog_ 열이 채워지지만 : Prog_ 열을 채우려는 값으로는 채워지지 않습니다.
: Assign Month <= "06/15/2016"인 경우 : Prog_ 열 행을 "A"로 채우고 싶습니다.
: Assign Month가> 06/15/2016 "인 경우 : Prog_ 열 행을"B "로 채우고 싶습니다.
지금까지 (실패한) 사용하려고 한 스크립트는 다음과 같습니다.
CT << New Column ( "Prog_", Character);
각 행에 대해 (Prog_ = if (Char (Format (: Assign Month, "m / d / y")) <= "06/15/2016", "A", "B"));
CT << New Column ( "Prog_", Character);
각 행에 대해 (Prog_ = if (: Assign Month <= 06/15/2016, "A", "B"));
스크립팅Re : 조건부 수식을 사용하여 새 열 채우기안녕,
먼저 : Assign Month 열이 숫자 연속 날짜 형식으로 지정되었는지 확인하십시오. 수식에서 따옴표를 사용하면 현재는 그렇지 않다는 것을 알 수 있습니다.
둘째, JMP에게 각 행을 보도록 지시 할 필요가 없으며 기본적으로 수행합니다.
셋째, : Prog_ 열의 공식은 다음과 같아야합니다.
If (: Column 1 <= 날짜 MDY (16, 05, 2016),
"ㅏ",
"비"
)
참고로 이것이 JSL 스크립트의 일부인 경우 함수가 New Column 문에 포함되어야합니다 (정확한 구문은 Scripting 도움말을 확인하십시오.
베스트,
TSRe : 조건부 수식을 사용하여 새 열 채우기일반적으로 이러한 유형의 문제를 처리하는 방법은 다음과 같습니다.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" ) );
그리고 추가 헉헉 수식 열을 만든 경우 For Each Row ()를 피할 수 있습니다.
CT = Current Data Table();
CT << New Column( "Prog_",
Character,
formula(
If( :Assign Month <= Informat( "06/15/2016", "mdy" ),
"A",
"B"
)
)
);
Re : 조건부 수식을 사용하여 새 열 채우기원래 변수는 숫자이며 JMP 날짜 및 시간 값을 나타냅니다. 형식화 된 문자열로 변환 할 필요가 없습니다. 시간 임계 값을 상수로 직접 지정할 수 있습니다.
CT << New Column( "Prog_", Character );
For Each Row( :Prog_ = If( :Assign Month <= 15Jun2016, "A", "B" ) );