Quando você já sabe quantas vezes quer repetir uma ação, um loop for é uma ótima opção. A ideia do loop for é percorrer uma sequência, um elemento por vez, executando uma ação a cada passo. Essa sequência geralmente é um vetor de números (como a sequência de 1:10), mas também pode ser uma lista de números fora de ordem, como c(2, 5, 4, 6), ou até uma sequência de caracteres!
Em outras palavras: "para cada valor na minha sequência, execute este código". Exemplos: "para cada linha do meu data frame, imprima a coluna 1" ou "para cada palavra da minha frase, verifique se essa palavra é DataCamp".
Vamos a um exemplo! Primeiro, você vai criar um loop que imprime os valores de uma sequência de 1 a 10. Depois, vai modificar esse loop para também somar os valores de 1 a 10, em que a cada iteração o próximo valor da sequência é adicionado ao somatório parcial.
Instruções
Um vetor seq já foi criado para você. Complete o loop for usando seq como sequência. Imprima value a cada iteração. A variável sum também foi criada para você. Use o loop para somar os números de seq. A cada iteração, value deve ser somado a sum e, em seguida, sum deve ser impresso.
# Sequence
seq <- c(1:10)
# Print loop
for (value in ___) {
print(___)
}
# A sum variable
sum <- 0
# Sum loop
for (value in seq) {
sum <- ___ + ___
print(___)
}
Se isso fez sentido, siga para o próximo exercício! Se não, aqui vai um vídeo de visão geral.
Vídeo de visão geral sobre loops for em R
Percorrer linhas de um data frame
Imagine que você está interessado nos dias em que o preço das ações da Apple passa de 117. Se subir acima desse valor, você quer imprimir a data e o preço atuais. Se você tiver um data frame stock com as colunas de date e preço de apple, dá para percorrer as linhas do data frame para fazer isso? Com certeza!
Antes de começar, note que você pode obter o número de linhas do seu data frame com nrow(stock). Em seguida, crie uma sequência para iterar de 1:nrow(stock).
for(row in1:nrow(stock)){
price <- stock[row,"apple"]
date <- stock[row,"date"]if(price >117){
print(paste("On", date,"the stock price was", price))}}[1]"On 2016-12-21 the stock price was 117.06"[1]"On 2016-12-27 the stock price was 117.26"Tecnologia
Esse exemplo reúne várias coisas que vimos até aqui: if statements, subsetting de vetores, condicionais e loops! Parabéns por chegar até aqui!
Instruções
stock está no seu workspace.
Preencha as lacunas no loop for para que o seguinte seja verdadeiro:
price deve receber o preço daquela iteração
date deve receber a data daquela iteração
Desta vez, você quer saber se apple passa de 116.
Se passar, imprima a date e o price.
Se ficar abaixo de 116, imprima a date e indique que não foi um dia importante!
# Loop over stock rows
for (row in 1:___) {
price <- stock[___, "___"]
date <- stock[___, "___"]
if(___ > ___) {
print(paste("On", ___,
"the stock price was", ___))
} else {
print(paste("The date:, ___,
"is not an important day!"))
}
}
Percorrer elementos de uma matriz
Até aqui, você percorreu tipos de dados unidimensionais. Se quiser iterar sobre elementos de uma matriz (colunas e linhas), vai precisar de loops aninhados. Vamos usar essa ideia para imprimir as correlações entre três ações.
A maneira mais fácil de pensar nisso é: você começa na linha 1 e segue para a direita, passando pela coluna 1, coluna 2, ... até a última coluna da linha 1. Depois, desce para a linha 2 e repete o processo.
my_matrix
[,1][,2][1,]"r1c1""r1c2"[2,]"r2c1""r2c2"# Loop over my_matrixfor(row in1:nrow(my_matrix)){for(col in1:ncol(my_matrix)){
print(my_matrix[row, col])}}[1]"r1c1"[1]"r1c2"[1]"r2c1"[1]"r2c2"Tecnologia
Instruções
A matriz de correlação, corr, está no seu workspace.
Imprima corr para dar uma espiada nos dados.
Complete o loop aninhado! Ele deve atender ao seguinte:
O loop externo deve percorrer as rows de corr.
O loop interno deve percorrer as cols de corr.
O comando de impressão deve mostrar os nomes da coluna e da linha atuais e também a correlação entre elas.
# Print out corr
# Create a nested loop
for(row in 1:nrow(___)) {
for(col in 1:___(corr)) {
print(paste(colnames(corr)[___], "and", rownames(corr)[___],
"have a correlation of", corr[row,col]))
}
}
Um tutorial introdutório completo sobre loops em Python. Aprenda e pratique loops while e for, loops aninhados, as palavras-chave break e continue, a função range e muito mais!
Domine loops for e outras funções essenciais de R com o nosso curso de introdução ao R.
Percorrer um vetor
Quando você já sabe quantas vezes quer repetir uma ação, um loop for é uma ótima opção. A ideia do loop for é percorrer uma sequência, um elemento por vez, executando uma ação a cada passo. Essa sequência geralmente é um vetor de números (como a sequência de
1:10), mas também pode ser uma lista de números fora de ordem, comoc(2, 5, 4, 6), ou até uma sequência de caracteres!Em outras palavras: "para cada valor na minha sequência, execute este código". Exemplos: "para cada linha do meu data frame, imprima a coluna 1" ou "para cada palavra da minha frase, verifique se essa palavra é DataCamp".
Vamos a um exemplo! Primeiro, você vai criar um loop que imprime os valores de uma sequência de 1 a 10. Depois, vai modificar esse loop para também somar os valores de 1 a 10, em que a cada iteração o próximo valor da sequência é adicionado ao somatório parcial.
Instruções
Um vetor
seqjá foi criado para você. Complete o loop for usandoseqcomo sequência. Imprimavaluea cada iteração. A variávelsumtambém foi criada para você. Use o loop para somar os números deseq. A cada iteração,valuedeve ser somado asume, em seguida,sumdeve ser impresso.Se isso fez sentido, siga para o próximo exercício! Se não, aqui vai um vídeo de visão geral.
Vídeo de visão geral sobre loops for em R
Percorrer linhas de um data frame
Imagine que você está interessado nos dias em que o preço das ações da Apple passa de
117. Se subir acima desse valor, você quer imprimir a data e o preço atuais. Se você tiver um data framestockcom as colunas dedatee preço deapple, dá para percorrer as linhas do data frame para fazer isso? Com certeza!Antes de começar, note que você pode obter o número de linhas do seu data frame com
nrow(stock). Em seguida, crie uma sequência para iterar de1:nrow(stock).Esse exemplo reúne várias coisas que vimos até aqui: if statements, subsetting de vetores, condicionais e loops! Parabéns por chegar até aqui!
Instruções
stockestá no seu workspace.Preencha as lacunas no loop for para que o seguinte seja verdadeiro:
pricedeve receber o preço daquela iteraçãodatedeve receber a data daquela iteraçãoapplepassa de116.datee oprice.116, imprima adatee indique que não foi um dia importante!Percorrer elementos de uma matriz
Até aqui, você percorreu tipos de dados unidimensionais. Se quiser iterar sobre elementos de uma matriz (colunas e linhas), vai precisar de loops aninhados. Vamos usar essa ideia para imprimir as correlações entre três ações.
A maneira mais fácil de pensar nisso é: você começa na linha 1 e segue para a direita, passando pela coluna 1, coluna 2, ... até a última coluna da linha 1. Depois, desce para a linha 2 e repete o processo.
Instruções
A matriz de correlação,
corr, está no seu workspace.corrpara dar uma espiada nos dados.rows decorr.cols decorr.Confira também nosso tutorial sobre loops em R.