본문 바로가기

Autohotkey강좌

Autohotkey 16. Minitab 매크로(글로벌 매크로)

반응형

https://www.youtube.com/watch?v=nBdwq7pBmIo

오늘은 Autohotkey강좌가 아닌 Minitab매크로를 소개합니다.

Minitab프로그램은 다양한 분야에서 사용하는 통계프로그램이며, 보통  6시그마 활용 Tool 로 많이 알려져 있습니다. 요즘에는 Open source 무료 프로그램인 R등에 밀리는 느낌이 있지만, 한때는 상당히 많은 사용자층이 존재했고 지금도 많이 사용하는  Tool 입니다.

이 Minitab에도 매크로 기능이 있습니다. 다음은 Minitab에서 매크로 종류입니다.

1) Exec 파일(*.mtb )

보다 단순한 형태의 Minitab 매크로이며, Exec 파일은 제어문을 포함할 수 없으며 실행할 때 변수와 하위 명령을 사용할 수 없습니다. Exec 파일은 방금 실행한 명령을 재실행할 때 유용합니다. 예를 들어 Minitab 세션에서 전에 만든 그래프를 다시 생성하려면 Minitab의 기록 창에서 원하는 명령을 선택하여 Exec 파일로 저장하십시오.

HISTOGRAM C1 C2;

YFrequency;

Bar; Panel.

예) 

이 Exec 파일은 두 열의 빈도에 대한 히스토그램을 그리고 패널을 표시합니다.

 

2) 글로벌 매크로(.MAC 파일)

활성 워크시트의 데이터를 분석하고 처리할 수 있습니다. 그러나 액세스할 열과 상수, 매크로가 해당 매크로 내에 지정되어야 합니다. 따라서 워크시트는 매크로를 실행할 때마다 같은 방법으로 구성되어야 합니다.

GMACRO

NOMISS

LET K90 = COUNT('X')

DO K91 = 1:K90

  IF 'X'[K91] = '*'

    DELETE K91:K90 'X'

    BREAK

  ENDIF

ENDDO

ENDMACRO

예 ) 이 매크로(NOMISS)는 X 열에서 첫 번째 결측 관측치를 찾은 다음 열의 나머지 부분을 삭제합니다.

 

3) 로컬 매크로(.MAC 파일)
변수 및 자체 하위 명령을 사용할 수 있기 때문에 글로벌 매크로보다 더 강력하고 유연합니다. 사용자가 매크로를 실행할 때 처리할 데이터를 지정하기 때문에 데이터를 더 유연하게 설정할 수 있습니다. 그러나 로컬 매크로는 글로벌 매크로에 비해 작성하기가 더 복잡합니다.
MACRO 
MNSTD x y z 
MCOLUMN x y z v 
MCONSTANT N i k1 k2 
MRESET 
BRIEF 0 
LET N=count(x) 
LET y(1)='*' 
LET z(1)='*' 
DO i=2:N 
COPY x v; 
USE 1:i. 
LET y(i)= MEAN(v) 
LET z(i)= STDEV(v) 
ENDDO 
ENDMACRO
예 ) 이 매크로(MNSTD)는 열의 처음 두 행의 평균과 표준 편차를 계산하고, 그 다음에는 처음 세 행의 평균과 표준 편차를 계산하고, 이후 한 행씩 늘려가며 작업을 계속합니다.

 

exec 파일은 너무 간단한 명령어의 조합이라고 할 수 있으며, 로컬매크로는 너무 복잡한 수준이라서 오늘은 글로벌 매크로에 대해서 배우겠습니다. 글로벌 매크로를 작성하는 방법은 아주 쉽습니다.

본인이 진행하고자 하는 작업을 순차적으로 실행하고 나서 해당 내용을 매크로로 저장하는 방법이 바로 그것입니다.

말로하면 이해가 잘 안 되기 때문에 다음과 같은 상황을 가정하겠습니다.

<목표>

minitab으로 분석할 자료가 10개의 열에 데이터가 100개씩 저장되어 있는 상황에서 공정능력분석을 하는 작업을 글로벌 매크로로 자동화하려고 합니다. 어떤 명령이 실행되는지 보기 위해 Session창이 선택된 상태에서  Menu-Editor -Enable commands를 선택해 줍니다.

1) Minitab을 열고 해당 데이터를 불러옵니다. 데이터는 각각 DATA1~DATA10까지 10개 종류이고 각 열마다 100개씩 저장되어 있습니다.

2)  Menu-Stat-Quality tools-Capability Analysis - Normal 을 선택하면 새로운 창이 뜹니다.

3) Single Column 에 C1을 선택하고 Subgroup size에는 해당하는 subgroup을 집어 넣습니다. 모르면 그냥 1을 넣어도 됩니다. Lower Spec, Upper Spec을 입력합니다. 추가적인 옵션이 있을 경우 해당 메뉴를 클릭해서 원하는 옵션을 선택합니다. 추가적인 옵션을 선택하지 않고 임의로 C1열에 대해서 subgroup size = 1, Lower spec = 95, Upper spec = 105라고 ok 를 누르면 다음과 같이 실행됩니다.

MTB > Capa C1 1;
SUBC>   Lspec 95;
SUBC>   Uspec 105;
SUBC>   Pooled;
SUBC>   AMR;
SUBC>   UnBiased;
SUBC>   OBiased;
SUBC>   Toler 6;
SUBC>   Within;
SUBC>   Overall;
SUBC>   CStat.

그 다음으로 진행할 C2열 작업도 진행해 봅니다.

MTB > Capa C2 1; 
SUBC>   Lspec 92; 
SUBC>   Uspec 103; 
SUBC>   Pooled; 
SUBC>   AMR; 
SUBC>   UnBiased; 
SUBC>   OBiased; 
SUBC>   Toler 6; 
SUBC>   Within; 
SUBC>   Overall; 
SUBC>   CStat.

Lower spec, Upper spec과 입력하는 데이터 열이름만 바뀌었네요.

 

실제로 위와 같은 명령이 실행되는 것이므로 우리는 이 부분을 모두 저장하면 됩니다. 어떻게 저장할까요?

Ctrl+Alt+H를 눌러서 명령 history를 보면 그대로 저장이 되어 있습니다. 그 부분을 그대로 에디터로 옮기면 되는데 그것만 저장하면 되지 않고 맨 위에 gmacro 를 선언해 주고 바로 다음줄에는 해당 매크로파일의 이름을 보통 넣어 줍니다.

이후에 실제로 실행할 명령어들을 나열해 주고, 마지막에 endmacro로 종료해 주면 됩니다.

 

gmacro
mymac

Capa 'data1' 1;
  Lspec 95;
  Uspec 105;
  Pooled;
  AMR;
  UnBiased;
  OBiased;
  Toler 6;
  Within;
  Overall;
  CStat.

Capa 'data2' 1;
  Lspec 90;
  Uspec 103;
  Pooled;
  AMR;
  UnBiased;
  OBiased;
  Toler 6;
  Within;
  Overall;
  CStat.

ENDMACRO

 

참고로 대소문자 구분은 없습니다. 이렇게 저장된 매크로를 실행하려면 어떻게 할까요?

Session창에서 commands를 enable해 줬으므로 거기서 %다음에 해당 매크로 이름을 넣어 주면 실행됩니다.

MTB> %mymac(.mac 생략가능)

 

정상적으로 실행되는 것을 볼 수 있습니다.

이 매크로가 자주 사용되어 메뉴상에 넣고 싶다면 다음과 같이 진행하면 됩니다.

1) Menu-tool-customize -Tools 를 선택한다.

2) menu contents  우측에 점선으로 된 네모를 눌러서 New(신규 명령어)를 입력한다.

   New - "Mymacro(원하는 이름)"으로 넣어 주고 Command항목에 %mymac.mac 를 입력하거나 우측의 ... 을 눌러서 해당 실행파일을 선택해 준다. 참고로 경로명을 주지 않고 파일명을 주는 경우 기본적으로 minitab설치경로\English\macros 에 저장되어 있다고 가정한다.(한글버전을 설치한 경우 minitab설치경로\한국어\macros 에 저장되어 있다고 가정한다.)

3) 실제로 Menu-Tools-Mymacro등을 선택해서 정상적으로 실행되는지 확인한다.

 

이상과 같이 진행하면 많은 명령어들로 이뤄진 반복작업을 쉽게 자동화할 수 있습니다.

미니탭 메크로 예제 프로그램은 첨부 참조하세요. 

mymac.mac
0.00MB

 

반응형