Loop no R

Quando falamos de loop em computação, estamos nos referindo a uma sequência de comandos que são especificados uma vez no código, mas executados repetidas vezes sucessivamente. Por exemplo, suponha que você tenha um vetor com os números {1,2,3,4,5,…,100} e deseja multiplicar por 2 os números de 1 a 50. Um loop, seria um comando que “diria” para o software “para os números de 1 a 50, fazer uma multiplicação por 2”. Esse é um exemplo simples de como um loop funciona. Há ainda outras formas de se fazer isso, e é exatamente este o conteúdo deste post.

COMANDO FOR

O comando for é um velho conhecido de quem trabalha com programação. Ele está inserido em todas as linguagens de alguma forma, e, para facilitar, via de regra já possui o mesmo nome. A estrutura do for é a seguinte:

for(i in vetor){
tarefa a ser executada
}

O que o comando acima faz é executar a tarefa especificada para cada item no vetor (na sequência) fornecido. Um exemplo bem básico ensinado em diversos cursos e que serve para entender o que o for está fazendo, é colar um texto para cada execução sendo realizada. Veja abaixo, como colamos o texto “number __” para cada número da sequência executada:

for(i in 1:10){
print(paste("Number i"))
}

SAÍDA:

Captura de Tela 2018-06-17 às 10.17.34

O que o código acima fez?

Para cada i na sequência de 1 a 10, ele apresentou o texto “Number” + o número da sequência. É isso que faz o comando for, ele executa uma tarefa para cada elemento que lhe for passado. E a forma de passar o elemento é dizer que ele é um elemento de nome qualquer (no nosso caso i) e que está nessa sequência.

Outro exemplo simples:

for(i in 1:10){
print(2*i)
}

SAÍDA:

Captura de Tela 2018-06-17 às 10.19.27

Note que não há segredo. O que o loop faz é simplesmente repetir o comando de acordo com a sequência passada no i in x:y. Vejamos um exemplo levemente mais complexo, onde a sequência passada não será mais do número 1 ao 10. Na verdade, a sequência será originada de um outro código que veio antes e que gerou um vetor – para facilitar, já passei os valores de x, mas veja que eles poderiam ter sido originados de qualquer processo. Vamos calcular a somatória dos quadrados dos números de um vetor:

x = c(10,13,15,20,24,26)
y = 0

for(i in x){
y = i**2+y
} 

print(y)

SAÍDA: 2146

y é a somatória que queríamos obter. Inicializamos essa variável para que ela alotasse os valores que fossemos computando. Essa técnica de inicializar uma variável como 0 e alocar os valores da tarefa executada você provavelmente vai usar diversas vezes. Tenha ela em mente!

COMANDO WHILE

Quem estudou inglês sabe que for significa para, enquanto while significa enquanto. Ou seja, se no comando anterior a ideia era “para cada item, executar a tarefa x”, aqui a ideia é “enquanto x, executar y”.

O comando while executará uma ação, enquanto a condição exigida for verdadeira:

while

Fonte da imagem: http://www.excoded.com/learn/csharp/cs_while_loop.php

A sintaxe do comando também é simples:

while ( expressão ) {
tarefa a ser executada
}

Por exemplo, se você tiver uma variável x e quiser adicionar 1 enquanto não atingir 10:

x = 2

while(x < 10){
print(x)
x = x+1
}

SAÍDA:

Captura de Tela 2018-06-17 às 15.58.15

Para finalizar, neste exemplo, calculamos o somatório dos números pares menores que 100:

n=1;
x=0;
while( n < 100)
{
if(n%%2==0)
 x = x+n
else
 x = x
n=n+1
}

SAÍDA: 2450

Se este post te ajudou de alguma forma, curte o link ou deixe um comentário. E se tiver outros amigos que trabalham com esse material, não deixe de compartilhar com eles o site. Obrigado.

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s