Missing( " " )이 True를 반환합니까?공간 셀과 빈 셀을 구분하고 싶습니다.그만큼 누락() 함수는 둘 다 누락된 것으로 해석합니다.더 좋은 방법이 있습니까?
JMP 16.2.0을 사용하고 있습니다.
New Table( "Example",
Add Rows( 1 ),
New Column( "Empty", Character, "Nominal", Set Values( {""} ) ),
New Column( "Empty Missing?",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Is Missing( :Empty ) )
),
New Column( "Space", Character, "Nominal", Set Values( {" "} ) ),
New Column( "Space Missing?",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Is Missing( :Space ) )
)
)다른Re: Missing( " " )이 True를 반환합니까?감사 @vince_faller 그리고 @txnelson .이것은 내가 기대했던 대답이 아니지만 동작을 설명합니다.
Re: Missing( " " )이 True를 반환합니까?에 추가하려면 @vince_faller , JMP는 데이터 테이블에 입력할 때 " "를 ""로 변환하지만 " a"를 "a"로 변환하지 않습니다.즉, 주어진 셀에 유효한 문자가 있는 경우 JMP는 선행 공백( "20" hex)을 유지합니다.JMP에는 공백( \!b )( "08" hex ) 및 null( \!0 )( "" hex )을 입력하기 위한 이스케이프 문자열도 있습니다.
Re: Missing( " " )이 True를 반환합니까?공백은 ""이고 JMP가 공백 입력을 다시 공백으로 자르는 것처럼 보입니다.
Names default to here(1);
dt = New Table( "Example",
New Column( "Fun", Character, Set Values( {" ", "", "A"} ) ),
New Column("State", character, Formula(
Match(:Fun,
"", "Blank",
" ", "Space"
, // else
"Filled"
)
))
);
dt:Fun << Get Values(); // {"", "", "A"}
적어도 16.2에서는
이전 버전에서는 숫자가 아닌 경우에도 ismissing()을 수행할 수 없다는 것을 알고 있습니다.
Re: Missing( " " )이 True를 반환합니까?말한 것에 추가할 것이 거의 없습니다. 아마도 질문 하나:
"그럼, 우주 셀은 존재하지 않는다" - 우주 셀을 만들 가능성이 없다는 말인가?
흥미로운 점은 수식을 통해서도 공백이 ""로 변환된다는 점입니다.
New Table( "Example",
Add Rows( 1 ),
New Column( "space and A", Character, "Nominal", Set Values( {" A"} ) ),
New Column( "Space", Character, "Nominal", Formula( Substr(:space and A,1,1) ) ),
New Column( "Space Missing?", Formula( Is Missing( :Space ) ))
);
Show("x"||Substr(:space and A[1],1,1) ||"x"); // sure, JSL doesn't lose the space
Show("x"||:space_v2 [1] ||"x") //automatically trimmed, even with a formula!
그 선에 따르면, 공간 셀을 만드는 것이 불가능하다면, 어쩌면 수수께끼를 재구성해서 해결책을 찾을 수 있을지도 모른다.
예를 들어, 공간을 차지하지 않고 셀에 저장한 다음 문자를 추가한 다음, 문자가 그냥 문자인지 아니면 앞에 공백이 있는 문자인지 확인합니다.
Re: Missing( " " )이 True를 반환하나요?데이터 테이블에 문자열을 저장할 때 문자열 끝의 공백이 자동으로 제거되는 규칙이 있는 것 같네요?
왜냐하면 (선행 공백보다 훨씬 더) 감지하기 어렵기 때문입니다.
단순한 공백 " "은 후행 공백으로 처리되어 눈에 띄기 매우 어렵습니다.
이 규칙이 문서에 언급되어 있나요? 못 찾겠네요...
흥미롭게도 이 규칙은 열 수식에도 적용됩니다. 즉, 뒤따르는 공백이 단순히 제거됩니다.

dt = new table("test");
New Column( "input", Character, set values({"ABC","A B"}) );
New Column( "first 2 letters", Character, Formula( Substr( :input, 1, 2 ) ));
New Column( "length first_two_letters", Formula( Length( :first 2 letters ) ))