열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법친애하는,
몇 주 전에 JMP로 시작했습니다!! 순진한 질문입니다.
열 데이터 형식을 문자에서 숫자로 변환하려고 하는데 데이터 형식을 숫자로 변환하는 동안 열에서 모든 숫자 값이 손실됩니다.
같은 내용에 대해서는 첨부된 스크린샷을 찾으십시오.
데이터 유형을 문자에서 숫자로 변경할 때 열의 숫자 값을 유지하는 방법은 무엇입니까?
다음 명령을 사용하여 문자를 교체하여 시도했습니다.
values1 = dt:RequiredColumn<<값 가져오기;
정규식(:필수 열, "[^0-9]", "", GLOBALREPLACE );
이것으로 모든 숫자 값도 대체됩니다.
단순히 열의 숫자 값을 유지하고 싶습니다(원래 문자 데이터 유형). 커뮤니티에서 이 문제를 검색해 보았지만 관련 정보를 얻을 수 없었습니다.
Picture01 - OriginalColumnFormat - 열의 원래 데이터 형식 스크린샷
Picture02 - ColumnafterChangingDatatype- 데이터 유형을 숫자로 변경한 후의 열 스크린샷.
미리 감사드립니다...
데이터 테이블스크립팅창Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법원하는 것을 달성하는 데에는 여러 가지 방법이 있을 수 있으며 누군가(예: Jim)가 스크립트를 더 효율적으로 사용할 수 있도록 하겠지만 잠재적인 작업 흐름은 다음과 같습니다.
BTW, 귀하의 jpg는 변경하려는 문자 열의 모양을 볼 수 없습니다. 숫자가 아닌 문자가 있는 경우 데이터 유형을 변경하기 전에 처리해야 합니다.
1. 열을 마우스 오른쪽 버튼으로 클릭하고 Recode를 사용합니다. 숫자가 아닌 모든 값을 제거합니다.
2. 그런 다음 마우스 오른쪽 버튼을 클릭하고 열 정보를 선택합니다. (jpg처럼). 데이터 유형을 문자에서 숫자로, 모델링 유형을 연속으로 변경합니다.
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: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법친애하는 스탯맨,
적시에 답변해 주셔서 감사합니다.
열에서 Recode 옵션을 사용하여 숫자가 아닌 값을 제거하여 제안을 시도하고 열 데이터 유형을 문자에서 숫자로 변환하려고 시도했습니다. 그러나 데이터 유형이 숫자로 변경되면 여전히 모든 값이 이전과 같이 사라지고 있습니다.
같은 내용에 대해서는 첨부된 스크린샷을 찾으십시오.
레코딩 옵션에서 JMP는 숫자 값과 문자열 문자를 구별할 수 있었습니다.
곧 Mr. JIM의 제안 결과를 게시할 예정입니다.
감사합니다..
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법친애하는 짐.
숫자로 변환하기 전에 6번째 행 번호에 대한 스크립트를 실행하려고 시도했지만 결과는 다음과 같습니다.
:MeasuredValues[6] = "-1.00";
16진수로 문자(:MeasuredValues[6]) = "2D312E3030";
열의 데이터 유형을 숫자로 변환한 후:
:측정값[6] = .;
16진수로 문자(:MeasuredValues[6]) = "FFFFD10000000000";
숫자 값(변환 후 다른 값으로 변경)으로 변환되는 두 번째 행에 대한 스크립트를 실행했는데 결과는 다음과 같습니다.
변환 전:
:MeasuredValues[2] = "1.6.1";
16진수로 문자(:MeasuredValues[2]) = "312E362E31";
변환 후:
:측정값[2] = 3061584000;
16진수로 문자(:MeasuredValues[2]) = "41E6CF8210000000";
MeasuredValues 데이터가 있는 테이블을 첨부했습니다.
고맙습니다 !!
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법가지고 있는 테이블을 변환하는 것은 "쉽지만" 일반적으로 이러한 종류의 변환은 아닙니다. 고려해야 할 매우 다양한 값이 있습니다. 그런 다음 방법에 대한 문제/기능이 있습니다. JMP의 Num 기능이 작동합니다. 아래는 하나의 아이디어이지만 기간, 날짜, 시간, 백분율, 천 단위 구분 기호 등과 같은 다양한 "숫자" 형식이 여전히 생략됩니다. 또한 숫자와 관련이 없는 가능한 문자 중 일부만 제거합니다.
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: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법고마워 쨔응!!
그게 일을 했다...
Re: 열의 숫자 값을 잃지 않고 열 데이터 유형을 문자에서 숫자로 변환하는 방법JMP의 Num() 함수에 버그가 있는 것 같습니다.패턴의 문자열
"응"
항상 JMP 누락 값을 반환해야 하지만 대부분의 경우 유효한 숫자 값을 반환합니다.
Num( "9.4.333" )
보고
-49554633600
JMP 설명서(전체 검색이 아님)에서 이 문제에 대한 사용 참고 사항을 찾을 수 없습니다.JMP 지원 팀에 버그 보고서를 제출하고 있습니다.