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
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”ou “History”;
- 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 |
|
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 |
|
# 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