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. Saber como executar um loop significa economizar linhas de código e aumentar a eficiência do seu programa. Por isso, hoje vamos falar de loops no R.

Bom, vamos começar já com um 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”. Claro que neste exemplo há alguns métodos até melhores, mas vamos começar com ele para facilitar.

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:

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:

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:

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:

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
}

[/code]

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.

E aí, curtiu o post?

E aí? Gostou do conteúdo? Se inscreva para receber todas as novidades. Deixe seu e-mail em INSCREVA-SE na barra à direita, logo abaixo de pesquisar. E, por favor, não deixe de comentar, dar seu feedback e, principalmente, compartilhar com seus amigos. De verdade, isso faz toda a diferença. Além disso, você também pode acompanhar mais do meu trabalho seguindo a conta de Twitter @UniDosDados, no Instagram @universidadedosdados ou por alguma das redes que você encontra em Sobre o Estatsite / Contato, como meu canal de Youtube Canal Universidade dos Dados.

Aproveite e adquira sua camiseta de data science na LOJA DA UNIVERSIDADE DOS DADOS. Vai ficar estiloso e me ajudar neste projeto!

BONS ESTUDOS!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *