Programação em R - Parte 8 (agrupamento, loops e execução condicional)


Expressões agrupadas

R é uma linguagem de expressão no sentido de que seu único tipo de comando é uma função ou expressão que retorna um resultado. Até mesmo uma tarefa é uma expressão cujo resultado é o valor atribuído e pode ser usado sempre que qualquer expressão pode ser usada; em particular, tarefas múltiplas são possíveis.

Os comandos podem ser agrupados em chaves, {expr_1; ...; expr_m}, caso em que o valor do grupo é o resultado da última expressão no grupo avaliado. Como esse grupo também é uma expressão, ele pode, por exemplo, ser incluído em parênteses e usado como parte de uma expressão ainda maior, e assim por diante.

Declarações de controle


• Execução condicional:
• Execução repetitiva:

Execução condicional: declarações ‘’se’’


A linguagem possui uma construção condicional da forma

if (expr_1) expr_2 else expr_3

onde expr_1 deve avaliar para um único valor lógico e o resultado de toda a expressão é então evidente.

Os operadores de "curto-circuito" && e || são freqüentemente usados ​​como parte da condição em uma declaração if. Considerando que & e | se aplicam a elementos de vetores, && e || se aplicam para vetores de comprimento um.

Existe uma versão vetorial da construção if / else, a função ifelse. Esta tem a forma ifelse (condição, a, b) e retorna um vetor do mesmo comprimento que a condição, com elementos a [i] se a condição [i] for verdadeira, caso contrário, b [i].

Execução repetitiva: loops for, repeat e while


Há também uma construção de loop na forma

for (nome in expr_1) expr_2

onde nome é a variável do loop. expr_1 é uma expressão vetorial (muitas vezes uma seqüência como 1:20), e expr_2 é muitas vezes uma expressão agrupada com suas sub-expressões escritas em termos do nome. expr_2 é avaliado repetidamente como intervalos de nomes através dos valores no resultado vetorial de expr_1.

Como exemplo, suponha que ind seja um vetor de indicadores de classe e queremos produzir parcelas separadas de y versus x dentro de classes. Uma possibilidade aqui é usar coplot (), que irá produzir uma série de gráficos correspondentes a cada nível do fator. Outra maneira de fazer isso, agora colocando todos os gráficos no único display, é a seguinte:

for (i in 1:length(y)) {
abline (lsfit (x [[i]], y [[i]]))
}

Aviso: os loops são usados ​​no código R muito menos frequentemente do que nas linguagens compiladas. O código que leva uma visão de "objeto inteiro" provavelmente será tanto mais claro quanto mais rápido em R.

Outras opções de loop incluem o

repeat expr

while (condição) expr

A declaração de interrupção pode ser usada para encerrar qualquer loop, possivelmente anormalmente. Esta é a única maneira de encerrar loops repetidos.

A próxima declaração pode ser usada para interromper um ciclo específico e passar para o "próximo".

As instruções de controle são mais utilizadas em conexão com funções que são discutidas em Escrever suas próprias funções e onde mais exemplos surgirão.

Christian Guerreiro

Professor por vocação, blogueiro e servidor público por opção, amante da tecnologia e viciado em informação.


Ensino a distância em Bitcoin & Criptomoedas, além de Tecnologia da Informação: Virtualização com VMware, Big Data com Hadoop, Certificação ITIL 2011 Foundations e muito mais.


Suporte o Tecnologia que Interessa!

Você acha que as informações compartilhadas aqui são úteis?
Então me ajude a produzir ainda mais e melhores conteúdos!


É muito fácil. Basta divulgar nossos treinamentos pra alguém que conheça!


E se for de Salvador, podemos estruturar um curso presencial para sua empresa!

Eu vou ficar muito grato (e quem fizer os curso também :)!