열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법친애하는,
몇 주 전에 JMP를 시작했습니다!! 순진한 질문입니다.
열 데이터 유형을 문자에서 숫자로 변환하려고 하는데 데이터 유형을 숫자로 변환하는 동안 열의 모든 숫자 값이 손실됩니다.
첨부된 스크린샷을 찾으십시오.
데이터 유형을 문자에서 숫자로 변경할 때 열의 숫자 값을 유지하는 방법은 무엇입니까?
다음 명령을 사용하여 문자를 교체해 보았습니다.
values1 = dt:RequiredColumn<<값 가져오기;
Regex( :RequiredColumn, "[^0-9]", "", GLOBALREPLACE );
이것으로 모든 숫자 값도 대체됩니다.
단순히 열의 숫자 값을 유지하고 싶습니다(원래 문자 데이터 유형). 커뮤니티에서 이 문제를 검색하려고 했지만 관련 정보를 얻을 수 없었습니다.
Picture01 - OriginalColumnFormat - Column의 원래 데이터 유형 스크린샷
Picture02 - ColumnafterChangingDatatype- 데이터 유형을 숫자로 변경한 후 Column의 스크린샷.
미리 감사드립니다...

고급 통계 모델링데이터 접근데이터 혼합 및 정리대량 맞춤화품질 및 프로세스 엔지니어링윈도우Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법모두 인사드립니다. 귀하를 위한 업데이트 - JMP 17 기간에 이 문제에 대한 일부 작업이 완료된 것으로 보입니다. 특히 Num() 및 Informat()에 추가 인수가 추가되어 유효한 숫자로 간주되는 항목을 제어할 수 있습니다. 모든 JMP 17 EA7(이상) 사용자는 지금 이것을 사용해 볼 수 있습니다. 나머지는 JMP 17이 2022년 가을에 출시될 때까지 기다려야 합니다. 신고해 주셔서 감사합니다! 우리는 이러한 포럼을 모니터링하고 가능한 경우 이와 같은 문제를 해결하기 위해 노력합니다.
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법JMP가 이를 날짜로 해석하고 해당 날짜가 1904년 1월 1일(JMP datetime의 시작 시간) 이전이므로 음수일 수 있습니다.
Names Default To Here(1);
a = Num("9.4.333");
b = Num("31.12.1903");
c = Num("1.12.1903");
Show(a, b, c);
커뮤니티에서이 토론 후 Num()이 어떻게 동작하는지에 대해 숫자 값을 확인하기 위해 자체 유효성 검사기를 사용했습니다. 다음은 한 가지 예입니다.
Names Default To Here(1);
num_validator = Function({str}, {Default Local},
regex_validator_string = "^[-\+]{0,1}[0-9\.\,]+$";
If(Is Missing(Regex(str, regex_validator_string)),
retval = .; //use missing as non match due to num returning . in case of non-numeric
, //else
retval = Num(str)
);
return(retval);
);Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법이 문제를 조사하는 데 유효한 시간을 내주셔서 감사합니다 Jim !!
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법JMP의 Num() 함수에 버그가 있는 것 같습니다.패턴의 문자열
"nnn"
항상 JMP 누락 값을 반환해야 하지만 대부분의 경우 유효한 숫자 값을 반환합니다.
Num( "9.4.333" )
보고
-49554633600
JMP 설명서에서 이 문제에 대한 사용 참고 사항을 찾을 수 없습니다(전체 검색 아님).JMP 지원팀에 버그 보고서를 제출하고 있습니다.
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법감사합니다!
그 일을했다 ...
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법가지고 있는 테이블을 변환하는 것은 "쉬운" 일이지만 일반적으로 이러한 종류의 변환은 그렇지 않습니다. 고려해야 할 값이 너무 많습니다. 그런 다음 방법에 대한 문제/기능이 있습니다. JMP의 Num 함수가 작동합니다. 아래는 하나의 아이디어이지만 지속 시간, 날짜, 시간, 백분율, 1000 구분 기호 등과 같은 다양한 "숫자" 형식은 여전히 생략됩니다. 또한 숫자와 관련되지 않은 가능한 문자 중 일부만 제거합니다.
Names Default To Here(1);
dt = Current Data Table();
//remove alphabetical characters, should also remove some special characters
regex_one = "[a-zA-Z\s]";
dt << New Column("no_alph", Character, Nominal, << Set Each Value(
Regex(:MeasuredValues, regex_one, "", GLOBALREPLACE);
));
regex_two = "^-?[0-9]+\.?[0-9]*$";
dt << New Column("nums", Numeric, Nominal, << Set Each Value(
Num(Regex(:no_alph, regex_two))
));
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법친애하는 짐.
숫자로 변환하기 전에 6번째 행 번호에 대한 스크립트를 실행하려고 했습니다. 결과는 다음과 같습니다.
:MeasuredValues[6] = "-1.00";
Char To Hex(:MeasuredValues[6]) = "2D312E3030";
열의 데이터 유형을 숫자로 변환한 후:
:MeasuredValues[6] = .;
Char To Hex(:MeasuredValues[6]) = "FFFFD10000000000";
숫자 값으로 변환되는 두 번째 행에 대해 스크립트를 실행했습니다(변환 후 다른 값으로 변경). 결과는 다음과 같습니다.
전환 전:
:MeasuredValues[2] = "1.6.1";
Char To Hex(:MeasuredValues[2]) = "312E362E31";
변환 후:
:MeasuredValues[2] = 3061584000;
Char To Hex(:MeasuredValues[2]) = "41E6CF8210000000";
MeasuredValues 데이터가 있는 테이블을 첨부했습니다.
감사합니다 !!
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법스탯맨에게,
적시에 답변해 주셔서 감사합니다.
열에서 Recode 옵션을 사용하여 숫자가 아닌 값을 제거하여 제안을 시도하고 열 데이터 유형을 문자에서 숫자로 변환하려고 했습니다. 그러나 여전히 데이터 유형이 숫자로 변경되면 이전과 같이 모든 값이 사라지고 있습니다.
첨부된 스크린샷을 찾으십시오.
코딩 옵션에서 JMP는 숫자 값과 문자열 문자를 구별할 수 있었습니다.
곧 JIM 씨의 제안 결과를 게시할 예정입니다.
감사합니다..
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법JMP는 숫자 값의 적절한 표현인 모든 값을 변환해야 합니다.그러므로,
1.6.1, V1.6은 유효한 숫자 값이 아니므로 누락된 값으로 변환해야 합니다.
단, -1.00, 5.00, -15.000은 환산해야 합니다.
다음 스크립트를 실행하여 데이터에 문제를 일으킬 수 있는 숨겨진 문자가 있는지 확인하십시오.
show(:MeasuredValues[6],char to hex(:MeasuredValues[6]);
스크립트는 데이터 테이블의 6번째 행 값에 대한 16진수 값을 표시합니다.-1.00이 6번째 행에 없으면 문자 표현이 유효한 숫자 값으로 나타나지만 셀이 누락된 값으로 변경되는 행 중 하나의 행 번호로 6을 변경합니다.
MeasuredValues 열만 포함된 샘플 데이터 테이블을 첨부할 수 있다면 매우 유용할 것입니다.
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법원하는 것을 달성하는 데는 여러 가지 방법이 있을 수 있으며 누군가(예: Jim)가 이를 더 효율적으로 만드는 스크립트를 가지고 있을 것이라고 장담하지만 다음은 잠재적인 작업 흐름입니다.
BTW, 귀하의 jpg는 변경하려는 문자 열의 모양을 볼 수 없습니다. 숫자가 아닌 문자가 있는 경우 데이터 유형을 변경하기 전에 처리해야 합니다.
1. 열을 마우스 오른쪽 버튼으로 클릭하고 Recode를 사용합니다. 숫자가 아닌 모든 값을 제거합니다.
2. 그런 다음 마우스 오른쪽 버튼을 클릭하고 열 정보를 선택합니다. (jpg와 같은). 데이터 유형을 문자에서 숫자로 변경하고 모델링 유형을 연속으로 변경합니다.