Adicionando e Removendo Chaves
Parte da seção Lógica e Fluxo do Journey de R da Coddy. Lição 9 de 64.
Atribuir a um nome atualiza seu valor quando a chave existe e adiciona uma nova entrada quando ela não existe:
stock <- c(apples = 12, pears = 3)
stock["pears"] <- 5
stock["plums"] <- 8
print(stock)Saída:
apples pears plums
12 5 8 Para alterar um valor com base em seu valor atual, leia e escreva na mesma chave:
stock <- c(apples = 12, pears = 3)
stock["apples"] <- stock["apples"] - 2
print(stock[["apples"]])Saída:
[1] 10Uma tabela de consulta pode começar vazia com c() e crescer uma chave por vez:
ages <- c()
ages["Ada"] <- 36
ages["Linus"] <- 21
print(names(ages))Saída:
[1] "Ada" "Linus"Remova uma entrada de um vetor nomeado mantendo todos os outros nomes:
stock <- c(apples = 12, pears = 3, plums = 8)
stock <- stock[names(stock) != "pears"]
print(names(stock))Saída:
[1] "apples" "plums" Para uma lista, atribuir NULL remove a entrada:
user <- list(name = "Ada", temp = TRUE)
user[["temp"]] <- NULL
print(names(user))Saída:
[1] "name"Desafio
FácilComplete apply_delivery(stock, item, qty). Adicione qty ao estoque de item ou adicione item com a quantidade qty quando ele ainda não estiver estocado. Retorne o estoque atualizado.
O código fornecido lê o estoque como pares name=quantity, depois o item e a quantidade. Ele imprime cada entrada do estoque retornado como name: quantity, na ordem do estoque.
Experimente você mesmo
apply_delivery <- function(stock, item, qty) {
# Escreva seu código aqui
stock
}
# Código de entrada/saída fornecido: mantenha-o como está
input <- suppressWarnings(readLines(file("stdin")))
stock <- c()
for (pair in strsplit(input[1], ",")[[1]]) {
kv <- strsplit(pair, "=")[[1]]
stock[kv[1]] <- as.numeric(kv[2])
}
stock <- apply_delivery(stock, input[2], as.numeric(input[3]))
for (name in names(stock)) {
cat(name, ": ", stock[[name]], "\n", sep = "")
}
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
1Strings em Profundidade
Substrings com substr()Formatação com sprintf()Dividindo e UnindoPesquisando StringsSubstituindo TextoRecapitulação - Criador de Nome de Usuário4Matrizes
Criando MatrizesIndexando MatrizesResumos de Linhas e ColunasAritmética de MatrizesRecapitulação - Tabela de Assentos10Fluxo de Controle Avançado
A Função switch()ifelse() Vetorizadorepeat e breakFunções RecursivasRevisão — Classificador de Notas2Consultas de Chave-Valor
Consultas em Vetores NomeadosVerificando ChavesAdicionando e Removendo ChavesPercorrendo NomesRecapitulação - Mesa de Ações5Projeto - Boletim de Notas
Adicionando AlunosRegistrando Notas3Conjuntos e Contagem
Valores ÚnicosOperações com ConjuntosTestes de PertinênciaContagem com table()Recapitulação - Convidados do Evento6Funções como Valores
Funções AnônimasPassando FunçõesRetornando FunçõesClosures com EstadoRecapitulação - Regras de Desconto9Data Frames
Criando Data FramesColunas e LinhasFiltrando LinhasAdicionando e OrdenandoRecapitulação - Relatório de Vendas12Projeto - Rastreador de Despesas
Registro de DespesasGastos TotaisPratique por conta própria: Compilador de R online