Universidade Federal de Minas Gerais

Departamento de Estatística – ICEx

Métodos Computacionais para Estatística

 

 Macros no Minitab®

1)       Introdução: Macros servem para automatizar uma tarefa repetitiva ou para estender alguma funcionalidade do Minitab®. São arquivos de comandos com extensão .MAC. Esses arquivos são armazenados no sub-diretório Macros do diretório principal do Minitab®.

Executa-se uma macro através do comando % nome.macro.
Ex.: % Describe C1.

2)       Especificando comandos e subcomandos no Minitab®: Algumas informações úteis sobre comandos digitados no console do Minitab®:

-  Não há distinção entre maiúsculas e minúsculas nos nomes dos comandos e das colunas;

-  Pode-se usar as quatro primeiras letras para abreviar um comando ou sucomando;

-  Finalize a linha do comando principal com “;” no caso de utilização de subcomandos;

-  Conclua a linha do último subcomando com “.”;

-  Para sair de um comando multi-linha sem executá-lo, digite ABORT;

-  Os nomes das variáveis devem estar entre aspas simples (‘salary’);

-  Pode-se abreviar com um traço (–)  um intervalo de colunas (ou constantes ou matrizes);

-  Podem-se usar os seguintes comandos para especificar intervalo de números

1:4

1:4

(1, 2, 3, 4)

4:1

(4, 3, 2, 1)

1:3/0,5

(1; 1,5; 2; 2,5; 3)

Exemplos:

COPY 1:4  C2
COPY 1:3/,5 C3

COPY 4:1 C4

-  Use o símbolo & para continuar um comando até a próxima linha;

-  Use o símbolo # para comentários. Ele faz com que seja ignorado o que estiver digitado no restante da linha;

-  Às vezes é conveniente copiar um comando ou uma seqüência de comandos executados anteriormente. Eles podem ser copiados das janelas Session ou History e colados na janela Session. Caso deseje inserir uma linha utilize  Ctrl +  Enter .

-  Sintaxe:
C: coluna
K: constante ou numero armazenados
M: matriz

-  Comand Line Editor: Os comandos podem ser digitados, editados e executados através do Command Line Editor, em Edit > Command Line Editor;

-  Para reexecutar comandos, selecione o bloco desejado e abra o Command Line Editor. Se necessário edite o texto. Execute-os clicando em Submit Commands.

3)      Macros: Uma macro consiste de comandos armazenados em um arquivo de texto. No Minitab ® há os seguintes tipos de macros:

a)       Macros Globais: É a forma mais simples de macro. Elas atuam diretamente na planilha ativa, devendo ser conhecidas as colunas, constantes ou matrizes que serão utilizadas durante a execução da macro. A macro global não poderá executar macros locais;

b)       Macros Locais: São mais poderosas que as macros globais. Permitem escrever comandos próprios, com argumentos e subcomandos opcionais, parecidos com os comandos do Minitab®. Utilizam-se de variáveis locais, conhecidas somente pela macro.parecidos com os comandos do Minitab®;

c)       Ambos tipos de macro permite a criação de programas que utilizam os comandos do Minitab® e elementos de programação tais como loops e condicionais (IF, THEN, ELSE), inclusão de sub-rotinas e execução de uma macro dentro da outra.

4)       Criando uma macro:

-  Use qualquer processador de texto para escrever a macro;

-  Salve-a no sub-diretório MACROS, com qualquer nome e com extensão MAC. Para executar a macro, entre o símbolo % seguido pelo nome da macro. Se a extensão do arquivo não for .MAC, digite o nome e a extensão do arquivo;

-  Caso o arquivo tenha sido salvo em outro diretório, especifique seu caminho ao comandar sua execução (% caminho.do.arquivo\nome.da.macro)

-  Se julgar mais conveniente, execute s comandos interativamente e copie-os da janela “Session”ouHistory”;

-  Para mostrar uma linha em branco durante a execução inclua o comando NOTE;

5)      Estrutura de uma macro simples:

-  Uma macro global segue a seguinte estrutura:

GMACRO

Marca o início da macro global

Template

Nome da macro

Body of the macro

Comandos da macro

ENDMACRO

Marca o final da macro global

-  GMACRO e ENDMACRO não podem ser abreviados;

-  O nome da macro pode conter letras, números ou o caractere “underscore”, mas deve ser iniciado com uma letra;

-  Não é necessário que o nome do arquivo da macro seja o mesmo do template;

-  O corpo da macro consiste de comandos Minitab® e comandos de outras macros globais;

-  A indentação durante a digitação não é necessária, mas pode facilitar sua leitura.

Exemplo:

Random 30 c2; # Cria a variável Chem1

Uniform 1 50.

 

Random 30 c3; # Cria a variável Chem2

Uniform 1 50.

 

Let c1 = 2+0,5*c2+4*c3 #Cria a variável Yield

 

Crie a macro abaixo

GMACRO

Marca o início da macro

Analyse

Nome da macro

NAME   c1='Yield' c2='Chem1'&

Corpo da macro

                C3='Chem2'c5='Ln.Yield'

PRINT    C1 - C3

DESCRIBE C1 - C3

LET C5 = LOGE('Yield')

REGRESS C5 2 C1 C2

ENDMACRO

Marca o final da macro

Execute a macro através do comando %ANALYSE

6)      Adicionando comandos de programação: Os comandos de programação podem tornar a macro mais flexível e poderosa.

-  Para executar uma ação apenas se alguma condição for verdadeira ou falsa usamos a estrutura condicional (IF, ELSEIF, ELSE e ENDIF)

Exemplo:

Apague a última linha da macro digitada e acrescente os seguintes comandos:

LET K1 = COUNT(‘Yield’)

IF K1<3

NOTE Quantidade Insuficiente de observações

ELSEIF K1=3

NOTE Adicione uma observação

ELSE

        REGRESS C5 2 C1 C2

ENDIF

7)      Estrutura de uma macro local: São macros mais complexas.

-  Uma macro local segue a seguinte estrutura:

MACRO

Marca o início da macro local

Template

Nome da macro, de qualquer sub-comando e de seus argumentos

Declaration statements

Declaração de todas as variáveis que serão usadas

Body of the macro

Comandos e invocações de outras macros

ENDMACRO

Marca o final da macro global

Exemplo:

MACRO

Marca o início da macro

TRIM X  XBAR

Nome da macro

# TRIM takes one column, X, as input.

# It orders the data, trims 5% from each

# end, calculates the mean of the

# remaining data, and stores it in the

# constant XBAR

MCONSTANT N T1 T2 XBAR

Declaração variáveis

MCOLUMN X XSORT XTRIM

#

Corpo da macro

# first we calculate the trimming points

# T1 and T2

LET N = COUNT(X)

LET T1 = ROUND(N*0,05)

LET T2 = N-T1+1

#next we check for the case when T1=0

# and nothing is trimmed

IF T1=0

LET XTRIM=X

# otherwise, we sort X, trim the ends and

# calculate the mean

ELSE

   LET XSORT=SORT(X)

COPY XSORT XTRIM;

  OMIT 1:T1 T2:N.

ENDIF

LET XBAR=MEAN(XTRIM)

ENDMACRO

Marca o final da macro

Execute a macro através do comando %TRIM C1 K1

Digite PRINT K1 e verifique o valor calculado