Menu
Coddy logo textTech

Consultas em Vetores Nomeados

Parte da seção Lógica e Fluxo do Journey de R da Coddy. Lição 7 de 64.

Um vetor nomeado armazena valores associados a nomes, o que o torna uma tabela de consulta: o nome é a chave e o elemento é o seu valor. Coloque o nome em [[ ]] para obter apenas o valor.

prices <- c(tea = 4, cake = 7)
print(prices[["cake"]])
print(names(prices))

Saída:

[1] 7
[1] "tea"  "cake"

Colchetes simples retornam o elemento junto com seu nome. [[ ]] retorna apenas o valor:

prices <- c(tea = 4, cake = 7)
print(prices["cake"])
print(prices[["cake"]] * 2)

Saída:

cake 
   7 
[1] 14

O nome pode vir de uma variável, que é como um programa procura uma chave que leu da entrada:

prices <- c(tea = 4, cake = 7)
item <- "tea"
print(prices[[item]])

Saída:

[1] 4

Um vetor de nomes consulta várias chaves de uma só vez, incluindo repetições, então sum() totaliza um pedido em uma única etapa:

prices <- c(tea = 4, cake = 7)
order <- c("tea", "cake", "tea")
print(sum(prices[order]))

Saída:

[1] 15

Um nome ausente se comporta de maneira diferente nas duas formas: prices["milk"] retorna NA, e prices[["milk"]] interrompe a execução com o erro subscript out of bounds.

challenge icon

Desafio

Fácil

Complete line_total(item, qty). A função define o menu abaixo. Retorne o preço de item multiplicado por qty, formatado com duas casas decimais: tea e 3 resultam em 7.50.

menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)

Todos os itens da entrada estão no menu. O código fornecido lê o item e a quantidade e imprime o valor retornado.

Experimente você mesmo

line_total <- function(item, qty) {
  menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)
  # Escreva seu código aqui
  ""
}

# Código de entrada/saída fornecido: mantenha-o como está
input <- suppressWarnings(readLines(file("stdin")))
cat(line_total(input[1], as.numeric(input[2])), sep = "\n")
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de R online