따라서 이 데모에서는 행렬을 사용할 수 있는 몇 가지 방법을 설명합니다. 따라서 섹션의 코스 저널에서 Cure Time Data를 클릭하겠습니다. 그리고 각 날짜에 대한 평균 치료 시간을 찾아야 한다고 가정해 보겠습니다. 따라서 각 행의 모든 경화 시간 값을 더하고 샘플 수로 나눕니다. 그리고 이 계산을 수행하기 위해 행렬을 사용할 것입니다. 다시 말하지만, 이러한 벡터화된 작업은 이를 더 효율적으로 만듭니다. 그래서 코스 저널로 돌아가서 Compute Statistics With Matrix라는 미리 작성된 스크립트가 있습니다. 치료 시간 테이블과 스크립트를 모두 볼 수 있도록 이동하겠습니다. 조금 더 넓고 균일하게 만들겠습니다. 따라서 스크립트는 s라는 변수를 생성하여 시작합니다. 그리고 s는 J 함수의 결과를 저장할 것입니다. 그리고 J 함수는 지정된 수의 행, 지정된 수의 열 및 일부 시작 값이 있는 행렬을 만듭니다. 그리고 이 경우에는 인수 없이 Nrow 함수를 사용하고 있습니다. 따라서 현재 데이터 테이블의 행 수만 볼 것입니다. 이제 행을 실행하겠습니다. 이제 로그에서 s에 저장되어 있는 것이 0으로 구성된 열 벡터임을 알 수 있습니다. 그리고 이것을 사용하여 각각의 치료 시간 값을 추가할 것입니다. 그래서 for 루프를 사용하고 있습니다. 치료 시간 데이터로 두 번째 열부터 시작하고 싶기 때문에 c equals를 초기화했습니다. c가 열 수보다 작거나 같은지 테스트합니다. 그리고 가장 좋은 방법은 특히 더 큰 데이터 테이블로 작업하는 경우 for 루프 외부에서 이 계산을 수행하고 변수에 저장하고 c를 해당 변수와 비교하는 것입니다. 다음으로 파서는 for 루프의 본문을 평가합니다. 그래서 우리는 먼저 할당 함수의 오른쪽을 살펴봅니다. 그래서 저는 이번에 처음으로 get as matrix to column 이라는 메시지를 보낸 다음 그 자리에 s를 추가합니다. 그런 다음 사후 증가 연산자로 c를 업데이트합니다. 그래서 c에 하나를 추가합니다. c가 여전히 열 수보다 작거나 같은지 테스트합니다. 이제 열을 행렬로 가져와 s에 추가합니다. 그래서 저는 계속해서 다음 행을 실행하겠습니다. 그리고 for 함수가 로그에 누락된 값을 반환한다는 것을 기억하십시오. 그러나 마우스를 가져가면 5개의 모든 경화 시간 열의 합계인 상당히 큰 숫자가 포함되어 있음을 확인할 수 있습니다. 마지막으로 현재 데이터 테이블에 새 열 메시지인 메시지를 보내겠습니다. 새 열의 제목은 Average가 됩니다. 그리고 값에 대해, 그리고 다시, 이것은 값 또는 값을 설정할 수 있습니다. 저는 실제로 계산을 할 것입니다. 다시 말하지만, 먼저 변수를 저장하기 위해 변수를 생성하지 않고도 values 인수에 함수를 제공할 수 있습니다. 여기 함수는-- 나에게는 나누기 함수와 빼기 함수가 있습니다. 저는 치료 시간 열의 합계인 s를 취하고 이를 c 빼기로 나누고 있습니다. 그리고 c 빼기로 나누었습니다. 왜냐하면 우리가 c를 계산하기 시작했기 때문입니다. 그래서 우리가 추가한 항목의 수에서 하나를 빼냅니다 위로. 그리고 물론, c는 테스트를 지나서 증가해야 했습니다. 테스트에 실패해야 했습니다. 그래서 c의 최종 값은-- 마우스를 가져가면 그것이 임을 알 수 있습니다. 하지만 실제로는 추가한 것뿐입니다. 이것이 바로 우리가 c 빼기로 나누는 이유입니다. 그래서 저는 계속해서 이 마지막 줄을 실행하겠습니다. 그리고 치료 시간 데이터 테이블에 Average 열이 생성된 것을 볼 수 있습니다. 그리고 로그에 표시된 대로 열 개체의 인스턴스를 생성했음을 알 수 있습니다. 그리고 사실, 그 열에 대해 더 많은 작업을 계속하고 싶다면 결과를 변수에 할당할 수 있는 모든 것을 줄에 작성하십시오. 이제 데모의 다음 단계에서는 모든 Cure Time 데이터를 한 번에 작업하여 계산을 수행하려고 합니다. 따라서 이 미리 작성된 스크립트에서 했던 것처럼 전체 데이터 테이블을 한 번에 하나의 열이 아닌 행렬로 추출할 것입니다. 그리고 그 전에 방금 만든 열을 제거하고 싶습니다. 따라서 이 스크립트 편집기 창의 전체 내용을 선택하겠습니다. 그리고 현재 데이터 테이블에 메시지를 보낼 것입니다. 열을 삭제합니다. 그리고 삭제하려는 열은 Average라는 열입니다. 그리고 다시 말하지만, 현재 데이터 테이블을 사용하면 테스트하거나 발표할 때 매우 편리합니다. 프로덕션 종류의 스크립트에서 우리는 테이블에 대한 보다 명시적인 참조를 사용하기를 정말로 원합니다. 따라서 현재 데이터 테이블은 스크립팅을 연습할 때 유용합니다. 단지 무언가가 어떻게 작동하는지 테스트하기만 하면 됩니다. 그러나 실제로는 배포하거나 사용하려고 계획하고 JMP 버전과 이를 사용하는 여러 상황에서 유지하려는 스크립트를 현재 데이터 테이블보다 명시적 데이터 테이블 참조를 사용하기를 원할 것입니다. 그래서 저는 이것을 실행하려고 합니다. 그리고 그것은 내가 제거하고 싶은 열을 삭제했습니다. 스크립트 가능한 메시지를 로그에 반환했습니다. 이제 스크립트 편집기 창의 내용을 지우겠습니다. 전체 데이터 테이블을 행렬로 추출하여 변수 m에 저장하겠습니다. 따라서 m에는 현재 데이터 테이블에 메시지를 보낸 결과가 할당됩니다. 그리고 그 메시지는 행렬로 가져옵니다. 그럼 실행하겠습니다. 그리고 로그에서 볼 수 있습니다. 또는 m 위로 마우스를 가져갈 수 있습니다. 이제 제가 이 행렬을 가지고 있다는 것을 알 수 있습니다. 그리고 첫 번째 열은 이 엄청난 숫자입니다. 물론, 일반적으로 데이터 테이블에 get을 행렬로 보내면 모든 숫자 열이 제거되기 때문입니다. 그리고 그것은 날짜를 포함할 것입니다. 따라서 여기의 날짜는 숫자로 처리됩니다. 연속형이므로 모델링 유형 아이콘으로 알 수 있습니다. 데이터 유형은 숫자여야 합니다. 당신은 또한-- 내가 더 넓게 만든다면-- 비록 하루에 문자가 있는 것처럼 보이지만 그것은 단지 형식화일 뿐입니다. 따라서 숫자이기 때문에 정당화됩니다. 따라서 행렬로 해당 값도 추출하십시오. 그리고 내가 Cure Time에 대한 계산을 하고 싶다면, 그리고 사실, 내가 하고 싶은 계산은 최소값과 최대값을 찾는 것과 관련이 있을 것입니다. 저는 그 행렬에서 그날의 큰 값을 원하지 않습니다. 그래서 나는 새로운 행으로 갈 것입니다. 그리고 조심하겠습니다. 내가 이미 가지고 있는 것을 유지하고 싶습니다. 이 작업을 진행하면서 이미 창에 넣은 코드를 볼 수 있지만 전체를 다시 실행하고 싶지는 않습니다. 따라서 한 번에 한 줄씩 실행하는 데 매우 주의할 것입니다. 첫 번째 열을 없애기 위해 변수 m을 사용하고 0과 1로 첨자를 씁니다. 그리고 기억하시겠지만, 그 아래 첨자는 특정 행을 선택하지 않는다는 의미입니다. 즉, 첫 번째 열의 모든 행을 제공하십시오. 그리고 저는 그 빈 행렬을 할당할 것입니다. 이것은 아무 것도 없는 대괄호일 뿐입니다. 그리고 다시 한 줄만 실행하기 위해 해당 줄을 강조 표시하고 전체 스크립트를 실행하는 데 사용하는 방법을 사용할 수 있습니다. 그러나 선택되거나 강조 표시된 부분만 실행됩니다. 또는 표준 데스크탑 키보드의 숫자 키패드에서 맨 오른쪽에 있는 Enter 키를 사용할 수 있습니다. 따라서 로그에 반환되는 것은 빈 행렬일 뿐입니다. 그러나 지금 m 위에 마우스를 올려 놓거나 m을 강조 표시하고 실행하면 현재 Cure Time 값만 있음을 알 수 있습니다. 큰 날짜 숫자가 있는 첫 번째 열을 제거했습니다. 새 줄로 이동하여 사용할 수 있는 다른 행렬 함수를 살펴보겠습니다. 그래서 loc 함수 LOC를 사용한 결과가 할당될 변수 a를 생성하겠습니다. 그리고 저는 이 행렬 m에서 값이 보다 큰 위치를 찾을 것입니다. 그리고 제가 그 행을 실행할 때 행렬 m을 마치 행 벡터인 것처럼 취급하고 첫 번째부터 계산합니다. 위치를 반환하고 지금보다 큰 행렬의 모든 요소의 단일 첨자 위치를 반환합니다. 실제 값을 원하면 avals라는 변수를 만들겠습니다. 그리고 m에 저장된 행렬을 변수 a로 첨자한 결과에 서명하겠습니다. 그리고 나는 그 라인을 실행할 것입니다. 그리고 이 값을 초과하는 실제 치료 시간 값이 있습니다. 그리고 물론 이 스크립트를 간소화하기 위해 모든 값의 위치를 저장할 필요가 없다면 실제로 간단히 첨자를 했을 수도 있습니다. loc 함수가 있는 행렬 m. 이 예제에서 처음에 저장한 위치로 작업해야 하는 다른 이유가 없다면 위치를 저장한 다음 사용하는 이 추가 단계가 필요하지 않습니다. 이 행렬로 다음으로 하고 싶은 일은 변환된 값을 계산하는 것입니다. Ans 이 변환은 전체 테이블에서 최소 경화 시간에서 최소값을 뺀 값을 최대 경화 시간 값에서 최소값 범위로 나눈 값을 곱하여 최소 치료에서 각 관측값의 거리를 구하는 것과 같습니다. 범위의 비율로 시간. 이것은 행렬 작업의 또 다른 이점을 보여줍니다. 스크립팅을 하든 대화식으로 작업하든 전체 데이터 테이블에서 최소값을 찾기 위해 데이터 테이블의 개별 열로 작업하려면 최소값이나 최대값을 찾는 데 많은 단계가 필요합니다. 그러나 행렬로 작업하면 아주 짧은 한 줄의 코드로 수행할 수 있습니다. 내 스크립트 편집기 창에서-- 이제 내용을 지우겠습니다-- 변수 minCT를 만들겠습니다-- 그래서 최소 치료 시간을 사용하고 해당 변수에 사용 결과를 할당하겠습니다. m을 인수로 사용하는 min 함수. 그리고 저는 그 라인을 실행하겠습니다. 따라서 최소값은 다음과 같습니다. 그리고 변수 maxCT도 생성하겠습니다. 그리고 m을 인수로 사용하여 max 함수를 사용한 결과를 할당하겠습니다. 그리고 나는 그 라인을 실행할 것입니다. 그리고 이제 이 변환을 계산할 때 이 변수를 사용할 수 있습니다. 변환 값을 저장할 변수 t를 생성하겠습니다. 새로운 라인으로 가겠습니다. 따라서 t에는 시간의 결과가 할당되고 분자 m에서 minCT를 뺀 여는 괄호가 할당됩니다. 따라서 해당 라인만 실행하면 이러한 변환 값을 얻을 수 있습니다. 각 관찰에서 최소값을 뺀 값을 경화 시간 값 범위의 비율로 나타냅니다. 자, 그것은 많은 소수 자릿수입니다. 우리는 그렇게 많은 정확성을 가지고 있지 않습니다. 따라서 실제로 이 값을 반올림할 수 있습니다. 그리고 나는 다시 새로운 라인으로 갈 것이다. 반올림 함수의 결과를 다시 t에 할당하여 t의 값을 덮어쓸 것입니다. 원본을 유지하려면 새 변수에서 이 작업을 수행할 수 있습니다. 하지만 t를 입력한 다음 할당 연산자인 round 함수를 입력하겠습니다. 인수는 첫 번째입니다. 나는 무엇을 반올림합니까? 그래서 t에 저장된 값을 반올림합니다. 그러면 소수점 이하 자릿수는 몇 개입니까? 나는 제로를 원한다. 이제 이것은 행렬의 값을 자릅니다. 이는 전체 값이 백그라운드에 계속 저장되는 소수점 이하 자릿수만 0으로 지정하도록 데이터 열의 형식을 지정하는 것과 다릅니다. 그래서 저는 여기서 포맷하지 않습니다. 실제로 값을 자르고 있습니다. 실행하겠습니다. 이제 변환된 값에 대한 정수 값을 얻었습니다. 이제 이 값을 치료 시간 데이터 테이블에 다시 넣으려면 행렬을 반복하고 새 열을 만들 수 있습니다. 완전히 새로운 데이터 테이블을 만들고 싶다면 테이블이라는 아주 간단한 함수가 있습니다. 그리고 이 테이블의 이름과 열의 이름을 지정하기 위한 선택적 인수가 있습니다. 이 데모에서는 변수 t를 테이블의 인수로 사용하여 간단하게 설명하겠습니다. 그리고 그것을 실행하면 일반 열 이름이 있는 제목 없는 테이블이 나타납니다. 그러나 이 테이블에 채워진 변환 행렬의 모든 값입니다. 그리고 다시 as table 인수의 일부로 이름과 열 머리글을 지정할 수 있습니다. 또는 나중에 스크립트를 사용하여 이를 수정할 수 있습니다. 따라서 열 또는 전체 데이터 테이블, 모든 숫자 열, 전체 데이터 테이블 및 행렬로 수행할 수 있는 몇 가지 조작별로 데이터 테이블에서 숫자 값을 추출하는 몇 가지 다른 방법을 살펴보았습니다.