<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />완벽한 데이터 세트는 드뭅니다. 수동으로 입력하면 더욱 그렇습니다!다행히 JMP는 데이터 관리 도구를 제공하여 문제를 해결합니다. 아래 예제는 두 가지 일반적인 수동 입력 실수를 찾고 수정하는 몇 가지 방법을 보여줍니다.
먼저 작업 할 빠른 데이터 세트를 설정하겠습니다. 아래 스크립트를 새 스크립트 창에 복사하고 스크립트 실행 아이콘을 클릭해야합니다.이러한 데이터가 10 개의 분말 코팅 강철 막대를 따라 10 개의 세트 위치에서 코팅 두께 (mm)의 자기 측정 값을 수동으로 입력했다고 가정 해보십시오. 공정 제어로 인해 두께는 항상 1보다 작습니다.두께가 0 인 코팅되지 않은 부분이있을 수 있습니다.
// 데이터 관리 연습을위한 행렬 및 데이터 테이블 설정
여기에 기본 이름 ( 1 ) ;
// 시뮬레이션 된 데이터 수집 오류가있는 랜덤 행렬로드
rndMat = [
0.35 830 0.71 0.91 0.74 . 0.71 0.92 0.96 0.28 ,
0.50 0.93 0.48 0.13 0.70 0.04 0.25 . 0.99 0.98 ,
0.26 0.19 750 0.22 0.97 0.35 0.30 0.25 0.64 . ,
0.19 0.19 0.53 0.31 0.58 0.65 0.64 0.53 0.02 0.35 ,
640 0.27 0.48 0.63 0.70 0.26 0.83 0.78 0.12 0.30 ,
0.54 0.38 0.47 . 0.89 0.71 0.91 . 0.74 0.16 ,
0.38 0.09 0.18 0.87 0.38 0.45 0.97 0.13 0.08 0.03 ,
0.75 0.17 0.33 580 0.88 0.63 0.14 0.18 0.40 0.79 ,
0.59 0.48 0.19 0.71 0.70 0.01 . 0.52 0.01 0.41 ,
0.44 0.07 0.87 0.34 0.05 0.64 0.11 1.00 0.70 0.91
] ;
// 랜덤 행렬에서 데이터 테이블 만들기
dtNew = 테이블로 ( rndMat ) ;
이제 데이터를 플로팅하고 요약하여 오류를 찾아 보겠습니다. 이 예에서는 데이터 정리에 초점을 맞추고 있지만 실생활에서도 데이터에 대한 기본적인 이해를 얻고 있습니다. PDD를 분석하기 전에 (데이터 더미를 플로팅) 기억하십시오 !!

배포 플랫폼은 데이터의 이상을 볼 수있는 훌륭한 도구입니다. 데이터 세트에 예상보다 1000 배 더 많은 항목이 있습니다. 저는 개인적으로 검사자 / 운영자가 소수점을 놓치거나 심지어 더 빨리 모든 소수점 자리를 생략하는 데이터를 만납니다! 변경하기 전에 운영자에게 이와 같은 오류를 확인하는 것이 좋습니다.
열 뷰어는 빠르고 쉬운 요약 도구입니다. 아래 이미지는 모든 열에 대한 요약 테이블을 보여줍니다. 데이터에 10 개의 결 측값이 있습니다. 0이 있어야하는 누락 된 값은 매우 일반적인 수동 입력 오류이며, 내 경험상 잘못 배치되거나 누락 된 소수보다 훨씬 더 일반적입니다. 모든 결 측값을 쉽게 볼 수있는 작은 테이블에서는 이것은 사소한 것처럼 보일 수 있습니다. 그러나 데이터 세트에 수천 또는 수백만 행의 데이터가있는 경우 어려움을 상상해보십시오! 건초 더미와 바늘이 떠 오릅니다.
요약 통계는 위의 배포 플랫폼을 사용한 것과 동일한 방식으로 사용할 수 있습니다. col1-col4의 최대 값은 예상보다 100 배 더 큽니다. 배포에서 배운 것과 같습니다.

우리의 탐색 적 분석은 우리 데이터에서 두 가지 유형의 오류를 식별했습니다. 소수 누락 및 0이어야하는 누락 된 값.이제 고쳐 봅시다!우리와 같은 작은 테이블에서는 데이터 테이블에서 필요한 변경을 수동으로 수행하는 것이 매우 쉽습니다. 우리는 이것이 사실이 아니며보다 효율적인 방법이 필요하다고 가정 할 것입니다.
JMP의 Recode Utility는 데이터 테이블의 값을 변경하기위한 메뉴 기반 옵션을 제공합니다. 유틸리티에 액세스하려면 열을 선택해야합니다. 두 가지 오류는 모두 레코딩에서 수정할 수 있습니다.


이제 데이터 세트에 10000 개의 행과 100 개의 열이 있다고 상상해보십시오. 갑자기 레코딩이 그다지 매력적이지 않습니다. 다행히도 JSL (JMP 스크립팅 언어)을 사용하면 문제를 빠르고 효율적으로 해결할 수 있습니다!
먼저 소수가 누락 된 모든 데이터를 찾아 수정하겠습니다. 루프를 사용하여 수동 찾기 및 수정 루틴을 자동화하는 것은 상상하기 쉽습니다. 보시다시피 이것은 작업을 완료합니다.
이 연습을 간단하고 명확하게 유지하려면 데이터 테이블과 스크립트 창을 닫으십시오. 아래 스크립트를 새 스크립트 창에 붙여넣고 스크립트를 실행하십시오.
여기에 기본 이름 ( 1 ) ;
// 시뮬레이션 된 데이터 수집 오류가있는 랜덤 행렬로드
rndMat = [
0.35 830 0.71 0.91 0.74 . 0.71 0.92 0.96 0.28 ,
0.50 0.93 0.48 0.13 0.70 0.04 0.25 . 0.99 0.98 ,
0.26 0.19 750 0.22 0.97 0.35 0.30 0.25 0.64 . ,
0.19 0.19 0.53 0.31 0.58 0.65 0.64 0.53 0.02 0.35 ,
640 0.27 0.48 0.63 0.70 0.26 0.83 0.78 0.12 0.30 ,
0.54 0.38 0.47 . 0.89 0.71 0.91 . 0.74 0.16 ,
0.38 0.09 0.18 0.87 0.38 0.45 0.97 0.13 0.08 0.03 ,
0.75 0.17 0.33 580 0.88 0.63 0.14 0.18 0.40 0.79 ,
0.59 0.48 0.19 0.71 0.70 0.01 . 0.52 0.01 0.41 ,
0.44 0.07 0.87 0.34 0.05 0.64 0.11 1.00 0.70 0.91
] ;
// 랜덤 행렬에서 데이터 테이블 만들기
dtNew = 테이블로 ( rndMat ) ;
myCols = N Cols ( dtNew ) ;
에 대한 ( 큐 = 1 , 큐 <= myCols , 큐 ++,
안부 = 기둥 ( 큐 ) ;
각 행에 대해 ( 안부 [] =
만약 (
안부 [] > 100 , 안부 [] / 1000 , 안부 []
) ;
만약 (
누락 ( 안부 []) == 1 , 안부 [] = 0 , 안부 []
) ;
) ;
) ;
이제 누락 된 소수 자리와 누락 된 0이 수정되었습니다!이 방법은 합법적이지만 길고 데이터 세트가 클수록 느릴 수 있습니다.제 생각에는 논리적 인덱싱이 더 나은 방법입니다. JSL에서 논리적 인덱싱은 Loc () 함수를 사용하여 수행됩니다. 이것은 말하는 것보다 보여주기가 조금 더 쉬울 것입니다.
테이블 및 스크립트 창을 닫습니다 (원하는 경우 저장).다음 스크립트를 새 스크립트 창에 붙여 넣습니다. 스크립트 실행을 클릭하십시오.
여기에 기본 이름 ( 1 ) ;
// 시뮬레이션 된 데이터 수집 오류가있는 랜덤 행렬로드
rndMat = [
0.35 830 0.71 0.91 0.74 . 0.71 0.92 0.96 0.28 ,
0.50 0.93 0.48 0.13 0.70 0.04 0.25 . 0.99 0.98 ,
0.26 0.19 750 0.22 0.97 0.35 0.30 0.25 0.64 . ,
0.19 0.19 0.53 0.31 0.58 0.65 0.64 0.53 0.02 0.35 ,
640 0.27 0.48 0.63 0.70 0.26 0.83 0.78 0.12 0.30 ,
0.54 0.38 0.47 . 0.89 0.71 0.91 . 0.74 0.16 ,
0.38 0.09 0.18 0.87 0.38 0.45 0.97 0.13 0.08 0.03 ,
0.75 0.17 0.33 580 0.88 0.63 0.14 0.18 0.40 0.79 ,
0.59 0.48 0.19 0.71 0.70 0.01 . 0.52 0.01 0.41 ,
0.44 0.07 0.87 0.34 0.05 0.64 0.11 1.00 0.70 0.91
] ;
// 오류 위치를 찾아 올바른 값으로 바꿉니다.
rndMat [ Loc ( rndMat > 100 )] = rndMat [ Loc ( rndMat > 100 )] : / 1000 ;
rndMat [ Loc ( 누락 ( rndMat ))] = 0 ;
dtNew = 테이블로 ( rndMat ) ;
결과를보세요! 두 줄의 코드와 루프없이 누락 된 십진수와 누락 된 0을 모두 수정했습니다! 루프를 피하기 위해 올바른 값으로 새 데이터 테이블을 생성했습니다.기존 테이블을 유지하려면 데이터 테이블의 각 열에 값을 할당하는 루프가 필요합니다.나는 여러분 모두가 이것을 스스로 실험하게 할 것입니다.

이것이 일어난 일입니다.Loc (rndMat> 100)은 값이 100보다 큰 rndMat의 인덱스 행렬입니다. rndMat [ Loc ( rndMat > 100 )] = rndMat [ Loc ( rndMat > 100 )] : / 1000 이 인덱스의 값을 현재 값을 1000으로 나눈 값으로 바꿉니다. 누락 된 값을 0으로 바꾸는 것이므로 누락 된 값을 바꾸는 것이 더 간단합니다.
Loc () 함수에 대한 자세한 내용은 스크립팅 가이드의 7 장에서 찾을 수 있습니다. 스크립팅 가이드는 Help_Books에서 찾을 수 있습니다.논리적 인덱싱은 데이터 정리 이상의 유용성을 가지고 있으며 처음 사용하는 경우 연구 할 가치가 있습니다.
이 운동이 여러분 모두가 JMP의 힘을 더 많이 활용하는 데 도움이되기를 바랍니다.
즐겨!