Iterar sobre as linhas de um data frame
Imagine que você está interessado nos dias em que o preço das ações da Apple sobe acima de 117. Se passar desse valor, você quer imprimir a data e o preço atuais. Se você tiver um data frame stock com uma coluna de date e outra de preço apple, será que dá para iterar pelas 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 usando nrow(stock). Em seguida, pode criar uma sequência para iterar de 1:nrow(stock).
for (row in 1: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"
Isso reúne várias coisas que aprendemos até agora: if statements, subconjuntos de vetores, condicionais e loops! Parabéns por aprender tanto!
O data frame stocks está disponível para você usar.
Este exercício faz parte do curso
R Intermediário para Finanças
Instruções do exercício
- Preencha os espaços em branco no laço for para que o seguinte seja verdadeiro:
pricedeve guardar o preço daquela iteraçãodatedeve guardar a data daquela iteração- Desta vez, você quer saber se
applepassa de116. - Se passar, imprima o
datee oprice. - Se ficar abaixo de
116, imprima odatee informe que não foi um dia importante!
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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!"))
}
}